db_kyc_project/backend/users/migrations/0001_initial.py
Даня Вакуленков 4a18a785e9 Add backend code
2024-12-10 23:31:35 +03:00

140 lines
8.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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'),
),
]