This commit is contained in:
A'zamov Samandar
2025-12-06 21:50:28 +05:00
parent 3aa20fdaa1
commit f5766aa319
140 changed files with 2376 additions and 1582 deletions

View File

@@ -1,5 +1,8 @@
# Generated by Django 5.2.7 on 2025-11-22 11:39
# Generated by Django 5.2.7 on 2025-12-06 15:57
import django.core.validators
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
@@ -8,27 +11,330 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
('accounts', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Banner',
name='AdTopPlanModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=255, unique=True, verbose_name='Plan Name')),
('price', models.DecimalField(decimal_places=2, max_digits=10, validators=[django.core.validators.MinValueValidator(0)], verbose_name='Price')),
('duration', models.PositiveIntegerField(verbose_name='Duration (days)')),
('description', models.TextField(blank=True, verbose_name='Description')),
('is_active', models.BooleanField(default=True, verbose_name='Is Active')),
],
options={
'verbose_name': 'Ad Top Plan',
'verbose_name_plural': 'Ad Top Plans',
'db_table': 'ad_top_plan',
'ordering': ['price'],
},
),
migrations.CreateModel(
name='BannerModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('title', models.CharField(max_length=255, verbose_name='Title')),
('description', models.TextField(verbose_name='Description')),
('mobile_image', models.ImageField(upload_to='banner/mobile_image/', verbose_name='Mobile Image')),
('desktop_image', models.ImageField(upload_to='banner/desktop_image/', verbose_name='Desktop Image')),
('mobile_image', models.ImageField(upload_to='banners/mobile/', verbose_name='Mobile Image')),
('desktop_image', models.ImageField(upload_to='banners/desktop/', verbose_name='Desktop Image')),
('link', models.URLField(verbose_name='Link')),
('bg_color', models.CharField(max_length=255, verbose_name='BG Color')),
('text_color', models.CharField(max_length=255, verbose_name='Text Color')),
('bg_color', models.CharField(default='#FFFFFF', max_length=7, verbose_name='Background Color')),
('text_color', models.CharField(default='#000000', max_length=7, verbose_name='Text Color')),
('is_active', models.BooleanField(default=True, verbose_name='Is Active')),
('order', models.PositiveIntegerField(default=0, verbose_name='Display Order')),
],
options={
'verbose_name': 'Banner',
'verbose_name_plural': 'Banners',
'db_table': 'banner',
'ordering': ['order', '-created_at'],
},
),
migrations.CreateModel(
name='ColorModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=255, unique=True, verbose_name='Name')),
],
options={
'verbose_name': 'Color',
'verbose_name_plural': 'Colors',
'db_table': 'color',
'ordering': ['name'],
},
),
migrations.CreateModel(
name='TagsModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=255, unique=True, verbose_name='Tag Name')),
('slug', models.SlugField(max_length=255, unique=True, verbose_name='Slug')),
],
options={
'verbose_name': 'Tag',
'verbose_name_plural': 'Tags',
'db_table': 'tags',
'ordering': ['name'],
},
),
migrations.CreateModel(
name='AdModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=255, verbose_name='Name')),
('ad_type', models.CharField(choices=[('Buy', 'Buy'), ('Sell', 'Sell')], max_length=255, verbose_name='Type')),
('ad_category_type', models.CharField(choices=[('Product', 'Product'), ('Service', 'Service'), ('Auto', 'Auto'), ('Home', 'Home')], max_length=255, verbose_name='Category Type')),
('_price', models.DecimalField(blank=True, db_column='price', decimal_places=2, max_digits=10, null=True, verbose_name='Price')),
('discount', models.DecimalField(decimal_places=2, default=-1, max_digits=10, verbose_name='Discount')),
('is_available', models.BooleanField(default=True, verbose_name='Is available')),
('physical_product', models.BooleanField(default=False, verbose_name='Physical product')),
('image', models.ImageField(upload_to='ads/', verbose_name='Image')),
('description', models.TextField(verbose_name='Description')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ads', to=settings.AUTH_USER_MODEL, verbose_name='User')),
('plan', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.adtopplanmodel', verbose_name='Plan')),
],
options={
'verbose_name': 'Ad',
'verbose_name_plural': 'Ads',
'db_table': 'ad',
'ordering': ['-created_at'],
},
),
migrations.CreateModel(
name='AdSizeModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('weight', models.PositiveIntegerField(verbose_name='Weight (g)')),
('width', models.PositiveIntegerField(verbose_name='Width (cm)')),
('height', models.PositiveIntegerField(verbose_name='Height (cm)')),
('length', models.PositiveIntegerField(verbose_name='Length (cm)')),
('ad', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='size_info', to='api.admodel', verbose_name='Ad')),
],
options={
'verbose_name': 'Ad Size',
'verbose_name_plural': 'Ad Sizes',
'db_table': 'ad_size',
},
),
migrations.CreateModel(
name='AdVariantModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('value', models.CharField(max_length=255, verbose_name='Value')),
('is_available', models.BooleanField(default=True, verbose_name='Is Available')),
('price', models.DecimalField(decimal_places=2, max_digits=10, validators=[django.core.validators.MinValueValidator(0)], verbose_name='Price')),
('stock_quantity', models.PositiveIntegerField(default=0, verbose_name='Stock Quantity')),
('ad', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='variants', to='api.admodel', verbose_name='Ad')),
('color', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='api.colormodel', verbose_name='Color')),
],
options={
'verbose_name': 'Ad Variant',
'verbose_name_plural': 'Ad Variants',
'db_table': 'ad_variant',
},
),
migrations.CreateModel(
name='CategoryModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=255, verbose_name='Category Name')),
('name_uz', models.CharField(max_length=255, null=True, verbose_name='Category Name')),
('name_ru', models.CharField(max_length=255, null=True, verbose_name='Category Name')),
('name_en', models.CharField(max_length=255, null=True, verbose_name='Category Name')),
('show_home', models.BooleanField(default=False, verbose_name='Show on Home')),
('level', models.IntegerField(default=0, editable=False, verbose_name='Level')),
('image', models.ImageField(blank=True, null=True, upload_to='categories/', verbose_name='Image')),
('category_type', models.CharField(choices=[('Product', 'Product'), ('Service', 'Service'), ('Auto', 'Auto'), ('Home', 'Home')], default='Product', max_length=255, verbose_name='Category Type')),
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='api.categorymodel', verbose_name='Parent Category')),
],
options={
'verbose_name': 'Category',
'verbose_name_plural': 'Categories',
'db_table': 'category',
'ordering': ['level', 'name'],
},
),
migrations.AddField(
model_name='admodel',
name='category',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.categorymodel', verbose_name='Category'),
),
migrations.CreateModel(
name='FeedbackModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('star', models.IntegerField(default=5, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(5)], verbose_name='Rating')),
('comment', models.TextField(max_length=1000, verbose_name='Comment')),
('ad', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='feedbacks', to='api.admodel', verbose_name='Ad')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='feedbacks', to=settings.AUTH_USER_MODEL, verbose_name='User')),
],
options={
'verbose_name': 'Feedback',
'verbose_name_plural': 'Feedbacks',
'db_table': 'feedback',
'ordering': ['-created_at'],
},
),
migrations.CreateModel(
name='FeedbackImageModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('image', models.ImageField(upload_to='feedbacks/', verbose_name='Image')),
('feedback', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='images', to='api.feedbackmodel', verbose_name='Feedback')),
],
options={
'verbose_name': 'Feedback Image',
'verbose_name_plural': 'Feedback Images',
'db_table': 'feedback_images',
},
),
migrations.CreateModel(
name='OrderModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('status', models.CharField(choices=[('Pending', 'Pending'), ('Cancel', 'Cancel'), ('Done', 'Done')], db_index=True, max_length=255, verbose_name='Status')),
('total_amount', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name='Total Amount')),
('address', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='accounts.address', verbose_name='Address')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='orders', to=settings.AUTH_USER_MODEL, verbose_name='User')),
],
options={
'verbose_name': 'Order',
'verbose_name_plural': 'Orders',
'db_table': 'order',
'ordering': ['-created_at'],
},
),
migrations.CreateModel(
name='OrderItemModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('price', models.DecimalField(decimal_places=2, max_digits=10, verbose_name='Price')),
('quantity', models.PositiveIntegerField(default=1, verbose_name='Quantity')),
('ad', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='api.admodel', verbose_name='Ad')),
('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='items', to='api.ordermodel', verbose_name='Order')),
],
options={
'verbose_name': 'Order Item',
'verbose_name_plural': 'Order Items',
'db_table': 'order_item',
},
),
migrations.AddField(
model_name='admodel',
name='tags',
field=models.ManyToManyField(blank=True, to='api.tagsmodel', verbose_name='Tags'),
),
migrations.CreateModel(
name='AdOptionModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=255, verbose_name='Name')),
('value', models.CharField(max_length=255, verbose_name='Value')),
('ad', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='options', to='api.admodel', verbose_name='Ad')),
],
options={
'verbose_name': 'Ad Option',
'verbose_name_plural': 'Ad Options',
'db_table': 'ad_option',
'unique_together': {('ad', 'name')},
},
),
migrations.CreateModel(
name='AdImageModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('image', models.ImageField(upload_to='ads/images/', verbose_name='Image')),
('order', models.PositiveIntegerField(default=0, verbose_name='Display Order')),
('is_primary', models.BooleanField(default=False, verbose_name='Is Primary')),
('ad', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='images', to='api.admodel', verbose_name='Ad')),
('ad_variant', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='images', to='api.advariantmodel', verbose_name='Ad Variant')),
],
options={
'verbose_name': 'Ad Image',
'verbose_name_plural': 'Ad Images',
'db_table': 'ad_images',
'ordering': ['order', '-created_at'],
'indexes': [models.Index(fields=['ad', 'is_primary'], name='ad_images_ad_id_ed2cb8_idx')],
},
),
migrations.AddIndex(
model_name='categorymodel',
index=models.Index(fields=['parent', 'show_home'], name='category_parent__ebe06e_idx'),
),
migrations.AddIndex(
model_name='categorymodel',
index=models.Index(fields=['level'], name='category_level_e67701_idx'),
),
migrations.AddIndex(
model_name='advariantmodel',
index=models.Index(fields=['ad', 'is_available'], name='ad_variant_ad_id_3a5d5e_idx'),
),
migrations.AlterUniqueTogether(
name='advariantmodel',
unique_together={('ad', 'value')},
),
migrations.AddIndex(
model_name='feedbackmodel',
index=models.Index(fields=['ad', '-created_at'], name='feedback_ad_id_444d80_idx'),
),
migrations.AddIndex(
model_name='feedbackmodel',
index=models.Index(fields=['user'], name='feedback_user_id_8cf53b_idx'),
),
migrations.AlterUniqueTogether(
name='feedbackmodel',
unique_together={('user', 'ad')},
),
migrations.AddIndex(
model_name='ordermodel',
index=models.Index(fields=['user', '-created_at'], name='order_user_id_13e363_idx'),
),
migrations.AddIndex(
model_name='ordermodel',
index=models.Index(fields=['status'], name='order_status_35c31c_idx'),
),
migrations.AlterUniqueTogether(
name='orderitemmodel',
unique_together={('order', 'ad')},
),
migrations.AddIndex(
model_name='admodel',
index=models.Index(fields=['-created_at'], name='ad_created_359de0_idx'),
),
migrations.AddIndex(
model_name='admodel',
index=models.Index(fields=['category', 'is_available'], name='ad_categor_8ff346_idx'),
),
]

View File

@@ -1,240 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-24 06:45
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0004_business_searchhistory'),
('api', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='AdTopPlan',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=255, verbose_name='Name')),
('price', models.DecimalField(decimal_places=2, max_digits=10, verbose_name='Price')),
('duration', models.IntegerField(verbose_name='Duration')),
],
options={
'verbose_name': 'AdTop Plan',
'verbose_name_plural': 'AdTop Plan',
'db_table': 'ad_top_plan',
},
),
migrations.CreateModel(
name='Color',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=255, verbose_name='Name')),
],
options={
'verbose_name': 'Color',
'verbose_name_plural': 'Colors',
'db_table': 'color',
},
),
migrations.CreateModel(
name='Tags',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=255, verbose_name='Name')),
],
options={
'verbose_name': 'Tags',
'verbose_name_plural': 'Tags',
'db_table': 'tags',
},
),
migrations.CreateModel(
name='AdModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=255, verbose_name='Name')),
('ad_type', models.CharField(choices=[('Buy', 'Buy'), ('Sell', 'Sell')], max_length=255, verbose_name='Type')),
('ad_category_type', models.CharField(choices=[('Product', 'Product'), ('Service', 'Service'), ('Auto', 'Auto'), ('Home', 'Home')], max_length=255, verbose_name='Type')),
('price', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='Price')),
('is_available', models.BooleanField(blank=True, default=True, null=True, verbose_name='Is available')),
('physical_product', models.BooleanField(default=False, verbose_name='Physical product')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ad', to=settings.AUTH_USER_MODEL, verbose_name='User')),
('plan', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.adtopplan', verbose_name='Plan')),
],
options={
'verbose_name': 'Ad',
'verbose_name_plural': 'Ads',
'db_table': 'ad',
},
),
migrations.CreateModel(
name='AdImage',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('image', models.ImageField(upload_to='ads/images/', verbose_name='Image')),
('ad', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.admodel', verbose_name='Ad')),
],
options={
'verbose_name': 'Ad_Image',
'verbose_name_plural': 'Ad_Images',
'db_table': 'ad_images',
},
),
migrations.CreateModel(
name='AdOption',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=255, verbose_name='Name')),
('value', models.CharField(max_length=255, verbose_name='Value')),
('ad', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.admodel')),
],
options={
'verbose_name': 'Ad_Option',
'verbose_name_plural': 'Ad_Options',
'db_table': 'ad_option',
},
),
migrations.CreateModel(
name='AdSize',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('weight', models.PositiveIntegerField(verbose_name='Weight')),
('width', models.PositiveIntegerField(verbose_name='Width')),
('height', models.PositiveIntegerField(verbose_name='Height')),
('length', models.PositiveIntegerField(verbose_name='Length')),
('ad', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.admodel')),
],
options={
'verbose_name': 'AdSize',
'verbose_name_plural': 'AdSizes',
'db_table': 'ad_size',
},
),
migrations.CreateModel(
name='AdVariant',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('variant', models.CharField(choices=[('Color', 'Color'), ('Size', 'Size')], db_index=True, max_length=255)),
('value', models.CharField(max_length=255)),
('is_available', models.CharField(max_length=255)),
('price', models.DecimalField(decimal_places=2, max_digits=10)),
('discount', models.DecimalField(decimal_places=2, default=-1, max_digits=10)),
('ad', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.admodel')),
],
options={
'verbose_name': 'Ad_Variant',
'verbose_name_plural': 'Ad_Variants',
'db_table': 'ad_variant',
},
),
migrations.CreateModel(
name='Category',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=255, verbose_name='Category Name')),
('show_home', models.BooleanField(default=False, verbose_name='Show Home')),
('level', models.IntegerField(default=0, verbose_name='Level')),
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='api.category')),
],
options={
'verbose_name': 'Category',
'verbose_name_plural': 'Categories',
'db_table': 'category',
},
),
migrations.AddField(
model_name='admodel',
name='category',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.category', verbose_name='Category'),
),
migrations.CreateModel(
name='Feedback',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('star', models.IntegerField(default=0, verbose_name='Star')),
('command', models.CharField(max_length=255, verbose_name='Command')),
('ad', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.admodel', verbose_name='Ad')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User')),
],
options={
'verbose_name': 'Feedback',
'verbose_name_plural': 'Feedbacks',
'db_table': 'feedback',
},
),
migrations.CreateModel(
name='FeedbackImages',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('image', models.ImageField(upload_to='feedback/images/', verbose_name='Image')),
('feedback', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.feedback', verbose_name='Feedback')),
],
options={
'verbose_name': 'Feedback Images',
'verbose_name_plural': 'Feedback Images',
'db_table': 'feedback_images',
},
),
migrations.CreateModel(
name='Order',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('status', models.CharField(choices=[('Pending', 'Pending'), ('Cancel', 'Cancel'), ('Done', 'Done')], max_length=255)),
('address', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='accounts.address', verbose_name='Address')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User')),
],
options={
'verbose_name': 'Order',
'verbose_name_plural': 'Orders',
'db_table': 'order',
},
),
migrations.CreateModel(
name='OrderItem',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('price', models.DecimalField(decimal_places=2, max_digits=10, verbose_name='Price')),
('count', models.PositiveIntegerField(default=0, verbose_name='Count')),
('ad', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.admodel', verbose_name='Ad')),
('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.order', verbose_name='Order')),
],
options={
'verbose_name': 'Order Item',
'verbose_name_plural': 'Order Items',
'db_table': 'order_item',
},
),
migrations.AddField(
model_name='admodel',
name='tags',
field=models.ManyToManyField(to='api.tags', verbose_name='Tags'),
),
]

View File

@@ -0,0 +1,47 @@
# Generated by Django 5.2.7 on 2025-12-06 16:11
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='SizeModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=100, unique=True, verbose_name='Name')),
],
options={
'verbose_name': 'Size',
'verbose_name_plural': 'Sizes',
'db_table': 'size',
'ordering': ['name'],
},
),
migrations.AlterUniqueTogether(
name='advariantmodel',
unique_together=set(),
),
migrations.AlterField(
model_name='advariantmodel',
name='color',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='api.colormodel', verbose_name='Color'),
),
migrations.AddField(
model_name='advariantmodel',
name='size',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='api.sizemodel', verbose_name='Size'),
),
migrations.RemoveField(
model_name='advariantmodel',
name='value',
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-24 10:15
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0002_adtopplan_color_tags_admodel_adimage_adoption_adsize_and_more'),
]
operations = [
migrations.AddField(
model_name='category',
name='image',
field=models.ImageField(blank=True, null=True, upload_to='', verbose_name='Image'),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 5.2.7 on 2025-12-06 16:29
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0002_sizemodel_alter_advariantmodel_unique_together_and_more'),
]
operations = [
migrations.AddField(
model_name='colormodel',
name='color',
field=models.CharField(max_length=255, null=True, verbose_name='Color'),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-25 07:14
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0003_category_image'),
]
operations = [
migrations.AddField(
model_name='category',
name='category_type',
field=models.CharField(choices=[('Product', 'Product'), ('Service', 'Service'), ('Auto', 'Auto'), ('Home', 'Home')], default='Product', max_length=255, verbose_name='Category Type'),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-25 10:10
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0004_category_category_type'),
]
operations = [
migrations.AddField(
model_name='admodel',
name='star',
field=models.FloatField(default=0.0, verbose_name='Star'),
),
]

View File

@@ -1,19 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-25 10:30
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0005_admodel_star'),
]
operations = [
migrations.AlterField(
model_name='adimage',
name='ad',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='images', to='api.admodel', verbose_name='Ad'),
),
]

View File

@@ -1,19 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-25 10:35
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0006_alter_adimage_ad'),
]
operations = [
migrations.AlterField(
model_name='advariant',
name='ad',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='variants', to='api.admodel'),
),
]

View File

@@ -1,19 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-25 10:43
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0007_alter_advariant_ad'),
]
operations = [
migrations.AddField(
model_name='adimage',
name='ad_variant',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='api.advariant', verbose_name='Ad Variant'),
),
]

View File

@@ -1,19 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-25 10:45
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0008_adimage_ad_variant'),
]
operations = [
migrations.AlterField(
model_name='adimage',
name='ad_variant',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='images', to='api.advariant', verbose_name='Ad Variant'),
),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-25 11:00
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0009_alter_adimage_ad_variant'),
]
operations = [
migrations.RemoveField(
model_name='admodel',
name='star',
),
migrations.AddField(
model_name='admodel',
name='image',
field=models.ImageField(default=1, upload_to='', verbose_name='Image'),
preserve_default=False,
),
]

View File

@@ -1,19 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-25 11:23
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0010_remove_admodel_star_admodel_image'),
]
operations = [
migrations.AlterField(
model_name='feedback',
name='ad',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='feedback', to='api.admodel', verbose_name='Ad'),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-25 11:38
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('api', '0011_alter_feedback_ad'),
]
operations = [
migrations.RenameField(
model_name='feedback',
old_name='command',
new_name='comment',
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-26 10:04
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0012_rename_command_feedback_comment'),
]
operations = [
migrations.AlterField(
model_name='feedback',
name='comment',
field=models.CharField(max_length=255, verbose_name='Comment'),
),
]

View File

@@ -1,19 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-28 11:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0013_alter_feedback_comment'),
]
operations = [
migrations.AddField(
model_name='admodel',
name='description',
field=models.TextField(default=1, verbose_name='Description'),
preserve_default=False,
),
]

View File

@@ -1,28 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-27 07:55
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0013_alter_feedback_comment'),
]
operations = [
migrations.AddField(
model_name='category',
name='name_en',
field=models.CharField(max_length=255, null=True, verbose_name='Category Name'),
),
migrations.AddField(
model_name='category',
name='name_ru',
field=models.CharField(max_length=255, null=True, verbose_name='Category Name'),
),
migrations.AddField(
model_name='category',
name='name_uz',
field=models.CharField(max_length=255, null=True, verbose_name='Category Name'),
),
]

View File

@@ -1,19 +0,0 @@
# Generated by Django 5.2.7 on 2025-11-28 11:45
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0014_admodel_description'),
]
operations = [
migrations.AlterField(
model_name='adoption',
name='ad',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='options', to='api.admodel', verbose_name='Ad'),
),
]

View File

@@ -1,14 +0,0 @@
# Generated by Django 5.2.7 on 2025-12-02 12:32
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('api', '0014_category_name_en_category_name_ru_category_name_uz'),
('api', '0015_alter_adoption_ad'),
]
operations = [
]