From 21bb6f2a8a6394f678749545d22610509c6fff7f Mon Sep 17 00:00:00 2001 From: pilot <657434@03b.ru> Date: Sat, 8 Aug 2026 03:38:46 +0800 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B0=D0=B3=D0=B5=D0=BD=D1=82=D0=B0=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=B4=D0=B0=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=B1=D0=BB=D0=BE=D0=BA=20LOGGING?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../max_bot/migrations/0001_initial.py | 755 ++++++++++++++++++ 1 file changed, 755 insertions(+) create mode 100644 restoran_max_bot/max_bot/migrations/0001_initial.py diff --git a/restoran_max_bot/max_bot/migrations/0001_initial.py b/restoran_max_bot/max_bot/migrations/0001_initial.py new file mode 100644 index 0000000..b4215e2 --- /dev/null +++ b/restoran_max_bot/max_bot/migrations/0001_initial.py @@ -0,0 +1,755 @@ +# Generated by Django 5.2 on 2026-08-08 02:56 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Client', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(blank=True, max_length=300)), + ('title_full', models.CharField(blank=True, max_length=300)), + ('token', models.CharField(blank=True, max_length=255)), + ('status', models.BooleanField(default=True)), + ('params', models.TextField(null=True)), + ('type', models.IntegerField(null=True)), + ('manager_id', models.IntegerField(null=True)), + ('partner', models.BooleanField(null=True)), + ('code', models.CharField(max_length=50, verbose_name='Код клиента в таблице cdr')), + ('brand', models.CharField(max_length=300, verbose_name='Код клиента в таблице cdr')), + ('logo', models.CharField(max_length=300)), + ('email', models.CharField(blank=True, max_length=50)), + ('server', models.CharField(max_length=200, verbose_name='сервер на котором работает клиент')), + ('phone', models.CharField(blank=True, max_length=12)), + ('dt', models.DateTimeField(auto_now_add=True)), + ('managment', models.CharField(max_length=300)), + ('tz', models.CharField(blank=True, max_length=50)), + ('balancecontrol', models.FloatField(null=True)), + ('promised_payment', models.DateTimeField(auto_now_add=True)), + ('details', models.TextField(null=True)), + ], + options={ + 'db_table': 'lk_client', + }, + ), + migrations.CreateModel( + name='Billing', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('submit_fd', models.DateTimeField(auto_now_add=True, verbose_name='Время начала действия записи')), + ('submit_td', models.DateTimeField(verbose_name='Время завершения действия записи')), + ('balance', models.FloatField(default=10, verbose_name='Баланс пользователя')), + ('payment', models.FloatField(default=10)), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_billing', + }, + ), + migrations.CreateModel( + name='BillingOrder', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('paysys', models.CharField(max_length=100)), + ('descr', models.CharField(max_length=300)), + ('amount', models.FloatField()), + ('status', models.SmallIntegerField()), + ('error', models.CharField(max_length=100)), + ('payment_id', models.CharField(max_length=100)), + ('payment', models.TextField()), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Время начала действия записи')), + ('updated_at', models.DateTimeField(verbose_name='Время завершения действия записи')), + ('control_status', models.SmallIntegerField(blank=False)), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_billing_order', + }, + ), + migrations.CreateModel( + name='AuthAccess', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Время начала действия записи')), + ('ip_address', models.CharField(max_length=30, verbose_name='ip адрес сети')), + ('ip_netmask', models.IntegerField(default=32, verbose_name='Маска подсети')), + ('status', models.BooleanField(default=True, verbose_name='включен или нет')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'au_access', + }, + ), + migrations.CreateModel( + name='AuthPhone', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('phone', models.CharField(max_length=11, verbose_name='Номер телефона для аутификации')), + ('data_last', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Время последнего использования')), + ('code_auth', models.CharField(max_length=6, null=True, verbose_name='Код аутификации')), + ('status', models.BooleanField(default=True, verbose_name='Включение номера')), + ('operator', models.CharField(max_length=6, null=True, verbose_name='Оператор')), + ('server', models.CharField(max_length=6, null=True, verbose_name='ссылка на сервер')), + ('phone_type', models.CharField(max_length=20, null=True, verbose_name='Используется для определенного типа авторизации')), + ('counter', models.IntegerField(default=0, verbose_name='счетчик звонков')), + ('device_info', models.CharField(max_length=255, null=True, verbose_name='ссылка на сервер')), + ('device_prefix', models.CharField(max_length=255, null=True, verbose_name='ссылка на сервер')), + ('call_error', models.IntegerField(default=0, verbose_name='счетчик ошибок')), + ('call_limit', models.IntegerField(default=0, verbose_name='лимит запросов в день')), + ('data_last_auth', models.DateTimeField(null=True, verbose_name='Время последнего использования обратной авторизации')), + ('user_blocking', models.BooleanField(default=True, verbose_name='Включение номера')), + ('creation_date', models.DateTimeField(auto_now_add=True)), + ('closing_date', models.DateTimeField()), + ], + options={ + 'db_table': 'au_phone', + }, + ), + migrations.CreateModel( + name='AuthLog', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Время создание записи')), + ('code_auth', models.CharField(max_length=6, null=True, verbose_name='Код аутификации')), + ('status', models.IntegerField(default=0, verbose_name='Статус выполнения запроса 0 - не выполнен, 1 - отправлен на выполнение, 2 - подтвержден')), + ('status_info', models.CharField(max_length=200, null=True)), + ('status_sms', models.CharField(max_length=200, null=True)), + ('phone', models.CharField(max_length=11, null=True, verbose_name='Номер телефона которому отправлен код дозвона')), + ('price', models.FloatField(default=0, verbose_name='Стоимость услуги')), + ('uid', models.CharField(max_length=100, null=True, verbose_name='Индификатор отправки сообщения')), + ('auth_type', models.CharField(max_length=11, null=True, verbose_name='Тип авторизации')), + ('web_hook', models.TextField(null=True)), + ('web_hook_status', models.TextField(null=True)), + ('sms_send', models.BooleanField(verbose_name='Отправка смс если не прошел звонок')), + ('operator', models.CharField(max_length=250, verbose_name='Имя оператора')), + ('auth_phone', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='max_bot.authphone', verbose_name='Данные аутификации')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ('auth_billing', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='max_bot.billing', verbose_name='Сылка на билинг')), + ], + options={ + 'db_table': 'au_log', + }, + ), + migrations.CreateModel( + name='AuthPayment', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Время создание записи')), + ('partner_id', models.IntegerField(verbose_name='Данные партнера')), + ('payment', models.FloatField(verbose_name='Сумма платежа')), + ('source', models.CharField(default='api', max_length=10, verbose_name='Источник платежа')), + ('info', models.CharField(max_length=500, null=True, verbose_name='Дополнительная информация')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_payment', + }, + ), + migrations.CreateModel( + name='Users', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=50, null=True)), + ('avatar', models.CharField(max_length=300, null=True)), + ('surname', models.CharField(max_length=50, null=True)), + ('phone', models.CharField(default='89000000000', max_length=11, null=True, verbose_name='Номер телефона')), + ('status', models.BooleanField(default=True, verbose_name='Включение номера')), + ('role', models.IntegerField(default=2)), + ('uid', models.CharField(max_length=50)), + ('email', models.CharField(max_length=50)), + ('passwd', models.CharField(max_length=100)), + ('dt', models.DateTimeField(auto_now_add=True)), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_usr', + }, + ), + migrations.CreateModel( + name='Contact', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('up', models.IntegerField()), + ('group', models.IntegerField()), + ('surname', models.CharField(max_length=100, null=True)), + ('name', models.CharField(max_length=100, null=True)), + ('patronymic', models.CharField(max_length=100, null=True)), + ('phone', models.CharField(max_length=40, null=True)), + ('telegram', models.CharField(max_length=100, null=True)), + ('maxx', models.CharField(max_length=100, null=True)), + ('status', models.IntegerField(default=1)), + ('dt', models.DateTimeField(auto_now_add=True)), + ('qr_menu', models.BooleanField(default=False)), + ('webast_bot', models.BooleanField(default=False)), + ('descr', models.CharField(max_length=500, null=True)), + ('field1', models.CharField(max_length=100, null=True)), + ('field2', models.CharField(max_length=100, null=True)), + ('field3', models.CharField(max_length=100, null=True)), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='max_bot.client', verbose_name=' id client')), + ], + options={ + 'db_table': 'lk_contact', + }, + ), + migrations.CreateModel( + name='CdrRecord', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('calldate', models.DateTimeField(null=True)), + ('src', models.CharField(max_length=80, null=True)), + ('dst', models.CharField(max_length=80, null=True)), + ('billsec', models.IntegerField(default=0, null=True)), + ('accountcode', models.CharField(max_length=20, null=True)), + ('uniqueid', models.CharField(max_length=32)), + ('disposition', models.CharField(max_length=45)), + ('duration', models.IntegerField(null=True)), + ('userfield', models.CharField(max_length=32)), + ('dstchannel', models.CharField(max_length=80)), + ('category_call', models.CharField(max_length=50)), + ('send_sms', models.BooleanField()), + ('filename', models.CharField(max_length=250)), + ('channel', models.CharField(max_length=80)), + ('lastdata', models.TextField()), + ('lastapp', models.TextField()), + ], + options={ + 'db_table': 'cdr', + }, + ), + migrations.CreateModel( + name='QueueTime', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('src', models.CharField(max_length=20, verbose_name='Номер абонента')), + ('dst', models.CharField(max_length=20, verbose_name='Номер агента')), + ('calldate', models.DateTimeField(auto_now_add=True, verbose_name='Время записи')), + ('billsec', models.IntegerField(default=0, verbose_name='Время ожидания')), + ('agent_code', models.IntegerField(verbose_name='Время ожидания')), + ('sla', models.IntegerField(default=0, verbose_name='параметр качества обслуживания 10 - до 10 секунд, 15 - до 15 сек, 20, 30, 100 более 30 секунд')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_queue_time', + }, + ), + migrations.CreateModel( + name='SmsConfig', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('user', models.CharField(max_length=40, verbose_name='Имя пользователя')), + ('password', models.CharField(max_length=40, verbose_name='Пароль')), + ('url', models.CharField(max_length=255, verbose_name='Ссылка')), + ('type', models.CharField(max_length=10, verbose_name='тип рассылки')), + ('params', models.CharField(max_length=255, verbose_name='Ссылка')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_sms_config', + }, + ), + migrations.CreateModel( + name='EmailBase', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Время создание записи')), + ('email', models.CharField(max_length=11, verbose_name='email')), + ('mac_address', models.CharField(blank=True, max_length=20, verbose_name='mac')), + ('description', models.CharField(max_length=50, verbose_name='Дополнительная информация')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_emails', + }, + ), + migrations.CreateModel( + name='Operator', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('prefix', models.CharField(max_length=11, verbose_name='Префикс оператора сети')), + ('operator', models.CharField(max_length=11, verbose_name='Оператор')), + ], + options={ + 'db_table': 'au_operator', + }, + ), + migrations.CreateModel( + name='DefCode', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('code_def', models.IntegerField()), + ('code_from', models.IntegerField()), + ('code_to', models.IntegerField()), + ('container', models.IntegerField()), + ('operator', models.CharField(max_length=255, verbose_name='Оператор')), + ('inn', models.IntegerField()), + ('region', models.CharField(max_length=255, verbose_name='Оператор')), + ], + options={ + 'db_table': 'au_defcode', + }, + ), + migrations.CreateModel( + name='Term', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('up', models.IntegerField()), + ('term', models.CharField(max_length=200)), + ('val', models.CharField(max_length=100)), + ('vali', models.IntegerField()), + ('html', models.TextField()), + ('params', models.TextField()), + ('status', models.BooleanField()), + ('dt', models.DateTimeField(auto_now_add=True)), + ], + options={ + 'db_table': 'lk_term', + }, + ), + migrations.CreateModel( + name='App', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('param', models.TextField()), + ('descr', models.CharField(max_length=255)), + ('type', models.CharField(max_length=100)), + ('status', models.SmallIntegerField()), + ('dt', models.DateTimeField(auto_now_add=True, verbose_name='Время создание записи')), + ('update_at', models.DateTimeField(verbose_name='Время обновления записи')), + ('app', models.CharField(max_length=255, verbose_name='приложение обработки')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_app', + }, + ), + migrations.CreateModel( + name='Task', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('mess', models.TextField()), + ('status', models.IntegerField()), + ('prev_status', models.IntegerField()), + ('reason', models.CharField(max_length=255)), + ('priority', models.IntegerField()), + ('dt_start', models.DateTimeField(auto_now_add=True, verbose_name='Время запуска приложения')), + ('dt', models.DateTimeField(auto_now_add=True, verbose_name='Время создание записи')), + ('app', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.app', verbose_name='Сылка на приложение')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_task', + }, + ), + migrations.CreateModel( + name='TaskDetail', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('subject', models.CharField(max_length=255)), + ('mess', models.TextField()), + ('cnt', models.IntegerField()), + ('status', models.IntegerField()), + ('reason', models.CharField(max_length=255)), + ('dt', models.DateTimeField(verbose_name='Время создание записи')), + ('update_at', models.DateTimeField(verbose_name='Время обновления записи')), + ('external_id', models.CharField(max_length=255)), + ('contact', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.contact', verbose_name='Данные пользователя')), + ('task', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.task', verbose_name='Сылка на приложение')), + ], + options={ + 'db_table': 'lk_task_detail', + }, + ), + migrations.CreateModel( + name='Price', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('price', models.FloatField()), + ('description', models.CharField(max_length=255)), + ('service', models.CharField(max_length=255)), + ('category', models.CharField(max_length=255)), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Время начала действия записи')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_price', + }, + ), + migrations.CreateModel( + name='Partner', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('title', models.CharField(max_length=100)), + ('logo', models.CharField(max_length=100)), + ('descr', models.CharField(max_length=300)), + ('status', models.IntegerField()), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('slug', models.CharField(max_length=30)), + ('setting', models.TextField()), + ('token_partner', models.CharField(max_length=50)), + ('token_api', models.CharField(max_length=50)), + ('application_id', models.IntegerField()), + ], + options={ + 'db_table': 'lk_integration_partner', + }, + ), + migrations.CreateModel( + name='Integration', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('token', models.CharField(max_length=100)), + ('setting', models.TextField()), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('status', models.IntegerField()), + ('updated_at', models.DateTimeField(auto_now=True)), + ('partner_client', models.CharField(max_length=255)), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client')), + ('partner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.partner')), + ], + options={ + 'db_table': 'lk_integration', + }, + ), + migrations.CreateModel( + name='SipTrunk', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('provider', models.CharField(max_length=50)), + ('phone', models.CharField(max_length=50)), + ('passwd', models.CharField(max_length=50)), + ('status', models.BooleanField()), + ('dt', models.DateTimeField(auto_now=True)), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client')), + ], + options={ + 'db_table': 'lk_sip_trunk', + }, + ), + migrations.CreateModel( + name='Balance', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('type', models.CharField(max_length=50)), + ('accountcode', models.CharField(max_length=100)), + ('domain', models.CharField(max_length=100)), + ('login', models.CharField(max_length=50)), + ('secret', models.CharField(max_length=100)), + ('balance', models.FloatField()), + ('status', models.IntegerField()), + ('params', models.CharField(max_length=500)), + ('description', models.CharField(max_length=500)), + ('error', models.CharField(max_length=300)), + ('dt', models.DateTimeField(auto_now_add=True)), + ('informing_blocking', models.DateTimeField()), + ('informing_balance', models.DateTimeField()), + ('balance_save', models.FloatField()), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='max_bot.client')), + ], + options={ + 'db_table': 'lk_balance', + }, + ), + migrations.CreateModel( + name='SipPeer', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('num', models.CharField(max_length=100)), + ('secret', models.CharField(max_length=100)), + ('ipaddress', models.CharField(max_length=100)), + ('ipport', models.CharField(max_length=100)), + ('accountcode', models.CharField(max_length=100)), + ('description', models.CharField(max_length=100)), + ('type', models.CharField(max_length=100)), + ('status', models.BooleanField()), + ('op_position', models.CharField(max_length=100)), + ('op_fio', models.CharField(max_length=100)), + ('op_email', models.CharField(max_length=100)), + ('dt', models.DateTimeField(auto_now_add=True)), + ('cfg_server', models.CharField(max_length=50)), + ('cfg_port', models.CharField(max_length=10)), + ('operator', models.CharField(max_length=100)), + ('control_password', models.DateTimeField()), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='max_bot.client')), + ], + options={ + 'db_table': 'lk_sip_peer', + }, + ), + migrations.CreateModel( + name='BillingLog', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(verbose_name='Время начала действия записи')), + ('accruals', models.FloatField()), + ('function_init', models.CharField(max_length=255)), + ('description', models.CharField(max_length=255)), + ('billing', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='max_bot.billing', verbose_name='Данные пользователя')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ('price', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='max_bot.price', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_billing_log', + }, + ), + migrations.CreateModel( + name='SmsLog', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Время создание записи')), + ('phone', models.CharField(max_length=20, verbose_name='Номер телефона')), + ('text', models.TextField(blank=True, verbose_name='Текст')), + ('status', models.IntegerField(default=False, verbose_name='Статус')), + ('status_info', models.CharField(blank=True, max_length=300, verbose_name='Информация о статусе')), + ('uid', models.CharField(max_length=50, verbose_name='Индификатор сообщения от оператора')), + ('price', models.FloatField()), + ('provider', models.CharField(max_length=50, verbose_name='Индификатор сообщения от оператора')), + ('user_answer', models.CharField(max_length=255, null=True, verbose_name='ответ на сообщение')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ('task', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='max_bot.task', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_sms_log', + }, + ), + migrations.CreateModel( + name='BillingService', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Время начала действия записи')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Дата проведения билинга')), + ('status', models.IntegerField(default=True, verbose_name='Статус')), + ('periodicity', models.CharField(max_length=255, verbose_name='Частотан начисления date, month')), + ('is_blocked', models.IntegerField(default=False, verbose_name='Статус блокировки услуги')), + ('blocked_at', models.DateTimeField(auto_now=True, verbose_name='Дата блокировки')), + ('app', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='max_bot.app')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ('price', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.price')), + ], + options={ + 'db_table': 'lk_billing_service', + }, + ), + migrations.CreateModel( + name='SmsSession', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('submit_fd', models.DateTimeField(auto_now_add=True, verbose_name='Время создание записи')), + ('submit_td', models.DateTimeField(verbose_name='Время создание записи')), + ('phone', models.CharField(max_length=11, verbose_name='Номер телефона')), + ('app', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.app')), + ('sms_log', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.smslog', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_sms_session', + }, + ), + migrations.CreateModel( + name='SmsAnswer', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('request', models.CharField(max_length=255, verbose_name='Номер телефона')), + ('answer', models.TextField()), + ('constantly', models.BooleanField(default=False)), + ('app', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.app')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_sms_answer', + }, + ), + migrations.CreateModel( + name='HotelBooking', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('uid', models.IntegerField()), + ('arrival', models.DateTimeField()), + ('departure', models.DateTimeField()), + ('regdate', models.DateTimeField()), + ('upddate', models.DateTimeField()), + ('folio', models.BigIntegerField()), + ('name', models.CharField(max_length=100)), + ('phone', models.CharField(max_length=11)), + ('email', models.CharField(max_length=50)), + ('summa', models.FloatField()), + ('uid_bitrix', models.IntegerField()), + ('status_booking', models.IntegerField()), + ('contact_id', models.BigIntegerField()), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_hotel_booking', + }, + ), + migrations.CreateModel( + name='WP', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('host', models.CharField(max_length=100)), + ('port', models.IntegerField()), + ('session', models.CharField(max_length=50)), + ('status', models.IntegerField()), + ('created_at', models.DateTimeField()), + ('updated_at', models.DateTimeField()), + ('phone', models.CharField(max_length=50)), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_whapsapp', + }, + ), + migrations.CreateModel( + name='DialplanConfig', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('webhook', models.CharField(max_length=255)), + ('tg_send_contact', models.BooleanField()), + ('tg_send_missed', models.BooleanField()), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'lk_sip_dialplan_config', + }, + ), + migrations.CreateModel( + name='ServerConfig', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=50)), + ('server_type', models.CharField(max_length=10)), + ], + options={ + 'db_table': 'lk_sip_server', + }, + ), + migrations.CreateModel( + name='MessageTemplate', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=200)), + ('type', models.CharField(max_length=100)), + ('html', models.TextField()), + ('params', models.JSONField()), + ('app_id', models.IntegerField()), + ('dt', models.DateTimeField(auto_now_add=True)), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client', verbose_name='Данные пользователя')), + ], + options={ + 'db_table': 'vi_mess_template', + }, + ), + migrations.CreateModel( + name='Product', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('up', models.IntegerField()), + ('title', models.CharField(help_text='Наименование продукции', max_length=200, null=True)), + ('descr', models.CharField(help_text='Описание продукции', max_length=200, null=True)), + ('img', models.CharField(help_text='Картинка продукции', max_length=200, null=True)), + ('url', models.CharField(help_text='Картинка продукции', max_length=200, null=True)), + ('price', models.FloatField(help_text='Стоимотсь продукции')), + ('sku', models.CharField(help_text='идентификационный код товарной позиции у партнера', max_length=100, null=True)), + ('status', models.IntegerField()), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='max_bot.client')), + ], + options={ + 'db_table': 'lk_product', + }, + ), + migrations.CreateModel( + name='ProductCategory', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('emojii', models.CharField(help_text='Картинка товара', max_length=20, null=True)), + ('title', models.CharField(help_text='Наименование категории', max_length=250, null=True)), + ('slug', models.CharField(help_text='Наименование категории', max_length=250, null=True)), + ('descr', models.CharField(help_text='Описание', max_length=200, null=True)), + ('src', models.IntegerField(help_text='для кого сделана категория 01-1 telegram, 10-2-qrmenu, 11-3 qrmenu and telegram')), + ('status', models.BooleanField(default=0, help_text='отображать или нет категорию')), + ('ord', models.IntegerField(help_text='порядок отображения')), + ('dt', models.DateTimeField(help_text='дата создания')), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='max_bot.client', verbose_name='id client')), + ], + options={ + 'db_table': 'lk_product_category', + }, + ), + migrations.CreateModel( + name='BonusTransaction', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('source', models.CharField(max_length=100)), + ('sum', models.FloatField()), + ('balance', models.FloatField()), + ('status', models.IntegerField()), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='max_bot.client')), + ('contact', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='max_bot.contact')), + ], + options={ + 'db_table': 'lk_qr_bonus_transaction', + }, + ), + migrations.CreateModel( + name='Qr', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('domain', models.CharField(blank=True, max_length=100, null=True)), + ('keywords', models.CharField(blank=True, max_length=500, null=True)), + ('brand', models.CharField(blank=True, max_length=300, null=True)), + ('title', models.CharField(blank=True, max_length=300, null=True)), + ('description', models.TextField(blank=True, null=True)), + ('activity', models.CharField(blank=True, max_length=100, null=True)), + ('thumb', models.CharField(blank=True, max_length=300, null=True)), + ('slider', models.CharField(blank=True, max_length=300, null=True)), + ('sections', models.TextField(blank=True, null=True)), + ('addr', models.CharField(blank=True, max_length=300, null=True)), + ('phone', models.CharField(blank=True, max_length=50, null=True)), + ('worktime', models.CharField(blank=True, max_length=100, null=True)), + ('links', models.TextField(blank=True, null=True)), + ('metrika', models.TextField(blank=True, null=True)), + ('status', models.IntegerField(blank=True, null=True)), + ('dt', models.DateTimeField(auto_now_add=True, null=True)), + ('logo', models.CharField(blank=True, max_length=255, null=True)), + ('feedback', models.CharField(blank=True, max_length=255, null=True)), + ('type', models.CharField(blank=True, max_length=30, null=True)), + ('lng', models.CharField(default='ru', max_length=10)), + ('setting', models.CharField(blank=True, max_length=255, null=True)), + ('theme', models.CharField(blank=True, max_length=100, null=True)), + ('base_limit', models.IntegerField(blank=True, null=True)), + ('vkpxl', models.CharField(blank=True, max_length=100, null=True)), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='max_bot.client')), + ], + options={ + 'db_table': 'lk_qr', + }, + ), + migrations.CreateModel( + name='PromoCode', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('promo', models.CharField(max_length=50, unique=True)), + ('chat_id', models.CharField(max_length=50)), + ('messenger', models.CharField(default='max', max_length=20)), + ('used', models.BooleanField(default=False)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('used_at', models.DateTimeField(blank=True, null=True)), + ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='max_bot.client')), + ], + options={ + 'db_table': 'lk_promo_code', + }, + ), + ]