# Generated by Django 5.1.15 on 2026-09-23 13:44 import django.db.models.deletion from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ('catalog', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='PickupPoint', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, verbose_name='Название')), ('address', models.CharField(max_length=300, verbose_name='Адрес')), ('working_hours', models.CharField(blank=True, max_length=200, verbose_name='Часы работы')), ('partner', models.CharField(blank=True, max_length=200, verbose_name='Партнёр')), ('is_active', models.BooleanField(default=True, verbose_name='Активен')), ], options={ 'verbose_name': 'Пункт выдачи', 'verbose_name_plural': 'Пункты выдачи', 'ordering': ('name',), }, ), migrations.CreateModel( name='Order', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('status', models.CharField(choices=[('new', 'Новый'), ('confirmed', 'Подтверждён'), ('paid', 'Оплачен'), ('assembled', 'Собран'), ('shipped', 'Передан в доставку'), ('done', 'Выполнен'), ('cancelled', 'Отменён'), ('refunded', 'Возврат')], default='new', max_length=20, verbose_name='Статус')), ('delivery_method', models.CharField(choices=[('pickup', 'Самовывоз'), ('courier', 'Доставка по договорённости'), ('cdek', 'СДЭК')], default='pickup', max_length=20, verbose_name='Способ получения')), ('address', models.CharField(blank=True, max_length=300, verbose_name='Адрес доставки')), ('payment_method', models.CharField(choices=[('by_agreement', 'По договорённости (напрямую продавцу)'), ('online', 'Онлайн через агрегатор')], default='by_agreement', max_length=20, verbose_name='Способ оплаты')), ('customer_comment', models.TextField(blank=True, verbose_name='Комментарий покупателя')), ('total', models.DecimalField(decimal_places=2, default=0, max_digits=12, verbose_name='Сумма')), ('commission', models.DecimalField(decimal_places=2, default=0, max_digits=12, verbose_name='Комиссия площадки')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Создан')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Обновлён')), ('buyer', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='orders', to=settings.AUTH_USER_MODEL, verbose_name='Покупатель')), ('pickup_point', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='orders', to='orders.pickuppoint', verbose_name='Пункт выдачи')), ], options={ 'verbose_name': 'Заказ', 'verbose_name_plural': 'Заказы', 'ordering': ('-created_at',), }, ), migrations.CreateModel( name='OrderItem', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, verbose_name='Название позиции')), ('price', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='Цена за единицу')), ('quantity', models.PositiveIntegerField(default=1, verbose_name='Количество')), ('brand', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='order_items', to='catalog.brand', verbose_name='Бренд')), ('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='items', to='orders.order', verbose_name='Заказ')), ('product', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='order_items', to='catalog.product', verbose_name='Товар')), ('service', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='order_items', to='catalog.service', verbose_name='Услуга')), ], options={ 'verbose_name': 'Позиция заказа', 'verbose_name_plural': 'Позиции заказа', }, ), migrations.CreateModel( name='Favorite', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Добавлено')), ('product', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='favorited_by', to='catalog.product', verbose_name='Товар')), ('service', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='favorited_by', to='catalog.service', verbose_name='Услуга')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='favorites', to=settings.AUTH_USER_MODEL, verbose_name='Пользователь')), ], options={ 'verbose_name': 'Избранное', 'verbose_name_plural': 'Избранное', 'constraints': [models.UniqueConstraint(condition=models.Q(('product__isnull', False)), fields=('user', 'product'), name='uniq_favorite_user_product'), models.UniqueConstraint(condition=models.Q(('service__isnull', False)), fields=('user', 'service'), name='uniq_favorite_user_service')], }, ), ]