# Generated by Django 2.0.7 on 2018-10-25 15:27 import autoslug.fields import cart.models import datetime from django.conf import settings import django.core.validators from django.db import migrations, models import django.db.models.deletion import django.db.models.manager from django.utils.timezone import utc class Migration(migrations.Migration): initial = True dependencies = [ ('products', '0001_initial'), ('core', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Buying', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), ('bonus_points', models.IntegerField(validators=[django.core.validators.MinValueValidator(0)], verbose_name='бонусы')), ('status', models.SmallIntegerField(choices=[(25, 'В корзине'), (50, 'Обрабатываеться'), (75, 'Оплаченно')], default=25, verbose_name='статус')), ('amount', models.SmallIntegerField(default=0, verbose_name='колличество')), ('total_price', models.DecimalField(decimal_places=2, max_digits=10, verbose_name='цена')), ], options={ 'verbose_name': 'Покупка', 'verbose_name_plural': 'Покупки', }, managers=[ ('active', django.db.models.manager.Manager()), ], ), migrations.CreateModel( name='Cashback', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), ('cashback', models.DecimalField(decimal_places=2, default=0, max_digits=7, verbose_name='Сумма')), ('status', models.SmallIntegerField(choices=[(0, 'заработанный'), (100, 'потраченный')], default=0, verbose_name='статус')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'verbose_name': 'cashback', 'verbose_name_plural': 'cashback', }, ), migrations.CreateModel( name='Client', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), ('status', models.SmallIntegerField(choices=[(0, 'Новый'), (25, 'Активный'), (50, 'Удаленный')], default=0, verbose_name='статус')), ('name', models.CharField(max_length=255, verbose_name='Название')), ('image', models.FileField(upload_to=cart.models.Client.upload_file_to, verbose_name='Изображение')), ('preview', models.FileField(upload_to=cart.models.Client.upload_file_to, verbose_name='Миниатюрка')), ], options={ 'verbose_name': 'Клиент', 'verbose_name_plural': 'Клиенты', }, ), migrations.CreateModel( name='Discount', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), ('name', models.CharField(max_length=255, verbose_name='Имя')), ('image', models.FileField(blank=True, null=True, upload_to=cart.models.Discount.upload_file_to, verbose_name='Изображение')), ('code', models.CharField(blank=True, default='f09d1c83-a6f8-40b5-a980-c7e69f7f585c', max_length=50, unique=True, verbose_name='Код')), ('valid_from', models.DateTimeField(auto_now_add=True, verbose_name='Начало')), ('valid_to', models.DateTimeField(blank=True, default=datetime.datetime(2018, 11, 1, 15, 27, 27, 195955, tzinfo=utc), verbose_name='Конец')), ('value', models.IntegerField(default=0, help_text='Указываем целым числом. Пример: 30 = 30%', validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100)], verbose_name='Процент')), ('active', models.BooleanField(default=True, verbose_name='Активная')), ], options={ 'verbose_name': 'Дисконт', 'verbose_name_plural': 'Дисконт', }, ), migrations.CreateModel( name='Offer', fields=[ ('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), ('status', models.SmallIntegerField(choices=[(0, 'Новый'), (25, 'Активный'), (50, 'Удаленный')], default=0, verbose_name='статус')), ('product', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='products.Product', verbose_name='Продукт')), ('vendor_code', models.CharField(help_text='Должен быть уникальным', max_length=255, unique=True, verbose_name='Артикул')), ('price', models.DecimalField(decimal_places=2, help_text='Цена за продукт', max_digits=10, validators=[django.core.validators.MinValueValidator(1.0)], verbose_name='цена')), ('amount', models.IntegerField(default=1, validators=[django.core.validators.MinValueValidator(1)], verbose_name='Колличество')), ('cashback', models.DecimalField(decimal_places=2, default=0, help_text='Указаная сумма будет отображаться в выбранной валюте позиции', max_digits=6, verbose_name='Кешбек')), ('note', models.TextField(blank=True, null=True, verbose_name='Пометка')), ('account_nds', models.BooleanField(default=False, verbose_name='с учетом НДС')), ('currency', models.ForeignKey(help_text='Цена по умолчанию в рублях', on_delete=django.db.models.deletion.PROTECT, to='core.Currency', verbose_name='Валюта')), ('discount', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='cart.Discount', verbose_name='Дисконт')), ], options={ 'verbose_name': 'Позиция', 'verbose_name_plural': 'Позиции', }, ), migrations.CreateModel( name='Order', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), ('order_code', models.CharField(max_length=255, verbose_name='код заказа')), ('customer_name', models.CharField(max_length=255, verbose_name='имя')), ('customer_email', models.EmailField(blank=True, default=None, max_length=254, null=True, verbose_name='email')), ('phone', models.CharField(max_length=12, validators=[django.core.validators.RegexValidator(message="Phone number must be entered in the format: '+99999999999'. Up to 12 digits allowed.", regex='^((\\+7)|8)?\\d{10}$')], verbose_name='телефон')), ('customer_address', models.TextField(verbose_name='адрес')), ('total_price', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name='стоимость')), ('comment', models.TextField(blank=True, default=None, null=True, verbose_name='комментарий')), ('status', models.SmallIntegerField(choices=[(0, 'Новый'), (50, 'Обрабатывается'), (100, 'Оплаченно')], default=0, verbose_name='статус')), ('city', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='core.City', verbose_name='Город')), ('customer_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='пользователь')), ], options={ 'verbose_name': 'Заказ', 'verbose_name_plural': 'Заказы', 'ordering': ('-create_at',), }, ), migrations.CreateModel( name='SupplyTarget', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), ('name', models.CharField(max_length=255, verbose_name='Назначение')), ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True)), ('status', models.PositiveSmallIntegerField(help_text='Необходимо указать числовой код статус', verbose_name='статус')), ], options={ 'verbose_name': 'Лицензия', 'verbose_name_plural': 'Лицензии', }, ), migrations.CreateModel( name='SupplyType', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), ('name', models.CharField(max_length=255, verbose_name='Тип')), ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True)), ('min_term', models.IntegerField(help_text='Минимальный срок поставки', verbose_name='от')), ('max_term', models.IntegerField(help_text='Максимальный срок поставки', verbose_name='до')), ('term_dimension', models.SmallIntegerField(choices=[(0, 'Час'), (0, 'День'), (0, 'Неделя'), (0, 'Месяц')], default=0, verbose_name='размерность')), ], options={ 'verbose_name': 'Тип поставки', 'verbose_name_plural': 'Тип поставки', }, ), migrations.AddField( model_name='offer', name='supply_target', field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='cart.SupplyTarget', verbose_name='Лицензия'), ), migrations.AddField( model_name='offer', name='supply_type', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='cart.SupplyType', verbose_name='Поставка'), ), migrations.AddField( model_name='buying', name='offer', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cart.Offer', verbose_name='позиция'), ), migrations.AddField( model_name='buying', name='order', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cart.Order', verbose_name='пользователь'), ), migrations.AddField( model_name='buying', name='user', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='пользователь'), ), ]