140 lines
8.7 KiB
Python
140 lines
8.7 KiB
Python
# Generated by Django 5.0.4 on 2024-04-26 08:14
|
||
|
||
import django.db.models.deletion
|
||
from django.conf import settings
|
||
from django.db import migrations, models
|
||
|
||
|
||
class Migration(migrations.Migration):
|
||
|
||
initial = True
|
||
|
||
dependencies = [
|
||
]
|
||
|
||
operations = [
|
||
migrations.CreateModel(
|
||
name='Transaction',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('date', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время')),
|
||
('value', models.DecimalField(decimal_places=5, max_digits=105, verbose_name='Значение')),
|
||
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype')),
|
||
],
|
||
options={
|
||
'verbose_name': 'Транзакция',
|
||
'verbose_name_plural': 'Транзакции',
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='TGUser',
|
||
fields=[
|
||
('tg_id', models.PositiveBigIntegerField(primary_key=True, serialize=False, verbose_name='Telegram ID')),
|
||
('username', models.CharField(max_length=250, verbose_name='Telegram username')),
|
||
('avatar', models.FileField(blank=True, null=True, upload_to='users/', verbose_name='Аватарка')),
|
||
('points', models.DecimalField(decimal_places=2, default=0, max_digits=102, verbose_name='Баллы')),
|
||
('referral_storage', models.DecimalField(decimal_places=5, default=0, max_digits=102, verbose_name='Реферальное хранилище')),
|
||
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')),
|
||
('referred_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='referrees', to='users.tguser', verbose_name='Кем был приглашен')),
|
||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='tg_user', to=settings.AUTH_USER_MODEL, verbose_name='Пользователь')),
|
||
],
|
||
options={
|
||
'verbose_name': 'ТГ-пользователь',
|
||
'verbose_name_plural': 'ТГ-пользователи',
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='ReferralTransaction',
|
||
fields=[
|
||
('transaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='users.transaction')),
|
||
],
|
||
options={
|
||
'verbose_name': 'Реферальная транзакция',
|
||
'verbose_name_plural': 'Реферальные транзакции',
|
||
},
|
||
bases=('users.transaction',),
|
||
),
|
||
migrations.CreateModel(
|
||
name='MailingList',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('name', models.CharField(max_length=250, verbose_name='Название')),
|
||
('time', models.DateTimeField(verbose_name='Дата и время публикации')),
|
||
('text', models.TextField(verbose_name='Текст публикации')),
|
||
('media', models.FileField(upload_to='mailing/', verbose_name='Вложение')),
|
||
('status', models.CharField(choices=[('1', 'Ожидание'), ('2', 'В очереди'), ('3', 'В обработке'), ('4', 'Окончена с ошибками'), ('5', 'Завершена')], default='1', max_length=1, verbose_name='Статус')),
|
||
('main_button', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='mailing_lists_for_main_button', to='misc.button', verbose_name='Кнопка')),
|
||
('webapp_button', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='mailing_lists_for_webapp_button', to='misc.button', verbose_name='Кнопка с веб-аппом')),
|
||
],
|
||
options={
|
||
'verbose_name': 'Рассылка',
|
||
'verbose_name_plural': 'Рассылки',
|
||
},
|
||
),
|
||
migrations.AddField(
|
||
model_name='transaction',
|
||
name='user',
|
||
field=models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, related_name='transactions', to='users.tguser', verbose_name='Пользователь'),
|
||
),
|
||
migrations.CreateModel(
|
||
name='MailingListReceiverInfo',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('sent', models.BooleanField(default=False, verbose_name='Отправлена ли')),
|
||
('clicked', models.BooleanField(default=False, verbose_name='Нажата ли')),
|
||
('mailing_list', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='mailing_list_receiver_infos', to='users.mailinglist', verbose_name='Рассылка')),
|
||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='mailing_list_receiver_infos', to='users.tguser', verbose_name='Пользователь')),
|
||
],
|
||
options={
|
||
'verbose_name': 'Информация о получателе рассылки',
|
||
'verbose_name_plural': 'Информация о получателях рассылки',
|
||
},
|
||
),
|
||
migrations.AddField(
|
||
model_name='mailinglist',
|
||
name='users',
|
||
field=models.ManyToManyField(related_name='mailing_lists', through='users.MailingListReceiverInfo', to='users.tguser', verbose_name='Пользователи'),
|
||
),
|
||
migrations.CreateModel(
|
||
name='BetTransaction',
|
||
fields=[
|
||
('transaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='users.transaction')),
|
||
('bet', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='transaction', to='auction.bet', verbose_name='Ставка')),
|
||
('refund_to', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='refunded_by', to='users.bettransaction', verbose_name='Какую транзакцию отменяет')),
|
||
],
|
||
options={
|
||
'verbose_name': 'Транзакция за ставку',
|
||
'verbose_name_plural': 'Транзакции за ставки',
|
||
},
|
||
bases=('users.transaction',),
|
||
),
|
||
migrations.CreateModel(
|
||
name='ClickTransaction',
|
||
fields=[
|
||
('transaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='users.transaction')),
|
||
('click', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='transaction', to='clicks.click', verbose_name='Клик')),
|
||
],
|
||
options={
|
||
'verbose_name': 'Транзакция за клик',
|
||
'verbose_name_plural': 'Транзакции за клики',
|
||
},
|
||
bases=('users.transaction',),
|
||
),
|
||
migrations.CreateModel(
|
||
name='CommissionTransaction',
|
||
fields=[
|
||
('transaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='users.transaction')),
|
||
('parent_transaction', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='commission', to='users.bettransaction', verbose_name='Родительская транзакция')),
|
||
],
|
||
options={
|
||
'verbose_name': 'Комиссионная транзакция',
|
||
'verbose_name_plural': 'Комиссионные транзакции',
|
||
},
|
||
bases=('users.transaction',),
|
||
),
|
||
migrations.AddConstraint(
|
||
model_name='tguser',
|
||
constraint=models.UniqueConstraint(fields=('tg_id',), name='unique_tg_id'),
|
||
),
|
||
]
|