You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
13 KiB
195 lines
13 KiB
# 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='пользователь'),
|
|
),
|
|
]
|
|
|