297 lines
19 KiB
Python
297 lines
19 KiB
Python
# Generated by Django 4.2.27 on 2026-06-17 01:32
|
||
|
||
from django.db import migrations, models
|
||
import django.db.models.deletion
|
||
|
||
|
||
class Migration(migrations.Migration):
|
||
|
||
initial = True
|
||
|
||
dependencies = [
|
||
]
|
||
|
||
operations = [
|
||
migrations.CreateModel(
|
||
name='Gonggao',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('leixing', models.IntegerField(blank=True, null=True, verbose_name='公告类型')),
|
||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||
('update_time', models.DateTimeField(auto_now=True, verbose_name='更改时间')),
|
||
('jieshao', models.TextField(blank=True, null=True, verbose_name='公告介绍')),
|
||
],
|
||
options={
|
||
'verbose_name': '公告',
|
||
'verbose_name_plural': '公告',
|
||
'db_table': 'gonggao',
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='Lunbo',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('tupian_url', models.CharField(blank=True, max_length=500, null=True, verbose_name='轮播图片URL')),
|
||
('leixing', models.IntegerField(blank=True, null=True, verbose_name='图片类型:1:轮播2:个人中心背景')),
|
||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||
('update_time', models.DateTimeField(auto_now=True, verbose_name='更改时间')),
|
||
],
|
||
options={
|
||
'verbose_name': '轮播',
|
||
'verbose_name_plural': '轮播',
|
||
'db_table': 'lunbo',
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='PopupConfig',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('popup_id', models.CharField(max_length=50, verbose_name='弹窗唯一ID')),
|
||
('title', models.CharField(blank=True, max_length=200, verbose_name='标题(后台用)')),
|
||
('description', models.TextField(blank=True, verbose_name='描述(后台用)')),
|
||
('strategy_type', models.CharField(choices=[('once', '仅一次'), ('daily', '每日'), ('weekly', '每周'), ('monthly', '每月'), ('yearly', '每年'), ('always', '始终'), ('count', '周期内次数限制')], default='once', max_length=20)),
|
||
('max_count', models.PositiveIntegerField(default=1, verbose_name='周期内最大展示次数')),
|
||
('reset_interval', models.CharField(blank=True, choices=[('day', '天'), ('week', '周'), ('month', '月'), ('year', '年')], max_length=20, verbose_name='重置周期(count类型时使用)')),
|
||
('duration', models.PositiveIntegerField(default=0, verbose_name='强制阅读秒数(0=无强制)')),
|
||
('force_even_muted', models.BooleanField(default=False, verbose_name='强制弹出(忽略用户今日屏蔽)')),
|
||
('sort_order', models.PositiveIntegerField(default=0, verbose_name='展示顺序')),
|
||
('is_active', models.BooleanField(default=True, verbose_name='是否启用')),
|
||
('start_time', models.DateTimeField(blank=True, null=True, verbose_name='生效开始时间')),
|
||
('end_time', models.DateTimeField(blank=True, null=True, verbose_name='生效结束时间')),
|
||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||
('updated_at', models.DateTimeField(auto_now=True)),
|
||
],
|
||
options={
|
||
'verbose_name': '弹窗配置',
|
||
'verbose_name_plural': '弹窗配置',
|
||
'db_table': 'popup_config',
|
||
'ordering': ['sort_order', 'id'],
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='PopupPage',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('page_key', models.CharField(db_index=True, max_length=50, unique=True, verbose_name='页面标识')),
|
||
('name', models.CharField(max_length=100, verbose_name='页面名称')),
|
||
('description', models.TextField(blank=True, verbose_name='描述')),
|
||
('is_active', models.BooleanField(default=True, verbose_name='是否启用')),
|
||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||
('updated_at', models.DateTimeField(auto_now=True)),
|
||
('ignore_user_mute', models.BooleanField(default=False, verbose_name='忽略用户今日屏蔽')),
|
||
],
|
||
options={
|
||
'verbose_name': '弹窗页面',
|
||
'verbose_name_plural': '弹窗页面',
|
||
'db_table': 'popup_page',
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='Qunpeizhi',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('peizhiid', models.IntegerField(blank=True, null=True, verbose_name='群类型:1.打手 2.管事')),
|
||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||
('update_time', models.DateTimeField(auto_now=True, verbose_name='更改时间')),
|
||
('neirong', models.CharField(blank=True, max_length=200, null=True, verbose_name='群介绍')),
|
||
('qunid', models.CharField(blank=True, max_length=100, null=True, verbose_name='群id')),
|
||
('jieshao', models.CharField(blank=True, max_length=200, null=True, verbose_name='介绍')),
|
||
],
|
||
options={
|
||
'db_table': 'qunpeizhi',
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='Szjilu',
|
||
fields=[
|
||
('id', models.AutoField(primary_key=True, serialize=False, verbose_name='记录ID')),
|
||
('zongsy', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='总收益')),
|
||
('zongls', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='总流水')),
|
||
('zongzc', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='总支出')),
|
||
('jrzc', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='今日支出')),
|
||
('jrls', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='今日流水')),
|
||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||
('update_time', models.DateTimeField(auto_now=True, verbose_name='更改时间')),
|
||
],
|
||
options={
|
||
'verbose_name': '收支记录',
|
||
'verbose_name_plural': '收支记录',
|
||
'db_table': 'szjilu',
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='TixianQuotaDefault',
|
||
fields=[
|
||
('id', models.AutoField(primary_key=True, serialize=False)),
|
||
('leixing', models.IntegerField(choices=[(1, '打手'), (2, '管事'), (3, '组长'), (4, '考核官'), (5, '打手押金'), (6, '商家余额')], unique=True, verbose_name='用户类型')),
|
||
('default_quota', models.DecimalField(decimal_places=2, default=20.0, max_digits=10, verbose_name='默认每日提现限额(元)')),
|
||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
||
],
|
||
options={
|
||
'verbose_name': '默认提现限额',
|
||
'verbose_name_plural': '默认提现限额',
|
||
'db_table': 'tixian_quota_default',
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='Tupianpeizhi',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('tupian', models.CharField(blank=True, max_length=500, null=True, verbose_name='配置图片URL')),
|
||
('leixing', models.PositiveIntegerField(blank=True, null=True, verbose_name='提现类型1:打手规则图片2:默认头像图片')),
|
||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||
('update_time', models.DateTimeField(auto_now=True, verbose_name='更改时间')),
|
||
('fangwen_cishu', models.PositiveIntegerField(default=0, verbose_name='访问次数')),
|
||
],
|
||
options={
|
||
'verbose_name': '配置图片',
|
||
'verbose_name_plural': '配置图片',
|
||
'db_table': 'tupianpeizhi',
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='WithdrawConfig',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('mode', models.IntegerField(choices=[(1, '自动提现'), (2, '手动提现')], default=2, verbose_name='提现模式')),
|
||
('created_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||
('updated_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
||
],
|
||
options={
|
||
'verbose_name': '提现模式配置',
|
||
'verbose_name_plural': '提现模式配置',
|
||
'db_table': 'withdraw_config',
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='ShangjiaMoban',
|
||
fields=[
|
||
('id', models.AutoField(primary_key=True, serialize=False, verbose_name='模板ID')),
|
||
('yonghu_id', models.CharField(db_index=True, max_length=7, verbose_name='用户ID')),
|
||
('leixing_id', models.PositiveIntegerField(db_index=True, verbose_name='商品类型ID')),
|
||
('moban_jieshao', models.CharField(max_length=500, verbose_name='模板介绍')),
|
||
('jiage', models.DecimalField(decimal_places=2, help_text='单位:元', max_digits=10, verbose_name='模板价格')),
|
||
('fabu_shuliang', models.PositiveIntegerField(default=0, verbose_name='发布数量')),
|
||
('yongjin_qiangdan', models.BooleanField(default=False, verbose_name='是否开启佣金抢单')),
|
||
('yongjin_jiage', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='佣金价格')),
|
||
('chenghao_id', models.IntegerField(blank=True, null=True, verbose_name='关联称号ID')),
|
||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
||
],
|
||
options={
|
||
'verbose_name': '商家订单模板',
|
||
'verbose_name_plural': '商家订单模板',
|
||
'db_table': 'shangjia_moban',
|
||
'indexes': [models.Index(fields=['yonghu_id', 'leixing_id'], name='shangjia_mo_yonghu__bb287d_idx'), models.Index(fields=['yonghu_id', 'leixing_id', 'id'], name='shangjia_mo_yonghu__4240d0_idx')],
|
||
'unique_together': {('yonghu_id', 'leixing_id', 'moban_jieshao')},
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='ShangjiaLianjie',
|
||
fields=[
|
||
('id', models.AutoField(primary_key=True, serialize=False, verbose_name='链接ID')),
|
||
('yonghu_id', models.CharField(db_index=True, max_length=7, verbose_name='用户ID')),
|
||
('leixing_id', models.PositiveIntegerField(db_index=True, verbose_name='商品类型ID')),
|
||
('moban_id', models.PositiveIntegerField(db_index=True, verbose_name='模板ID')),
|
||
('lianjie', models.CharField(max_length=500, unique=True, verbose_name='链接地址')),
|
||
('dingdan_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='订单ID')),
|
||
('is_used', models.BooleanField(db_index=True, default=False, verbose_name='是否已使用')),
|
||
('shiyongzhe_ip', models.CharField(blank=True, max_length=50, null=True, verbose_name='使用者IP')),
|
||
('youxiao_shijian', models.DateTimeField(blank=True, null=True, verbose_name='有效截止时间')),
|
||
('lianjie_token', models.CharField(blank=True, db_index=True, max_length=32, null=True, unique=True, verbose_name='链接Token')),
|
||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
||
('previous_lianjie_id', models.PositiveIntegerField(blank=True, db_index=True, null=True, verbose_name='上一个链接ID')),
|
||
('previous_dingdan_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='上一个订单ID')),
|
||
],
|
||
options={
|
||
'verbose_name': '商家链接',
|
||
'verbose_name_plural': '商家链接',
|
||
'db_table': 'shangjia_lianjie',
|
||
'indexes': [models.Index(fields=['yonghu_id', 'moban_id', 'leixing_id'], name='shangjia_li_yonghu__9f2b25_idx'), models.Index(fields=['lianjie_token'], name='shangjia_li_lianjie_99014c_idx'), models.Index(fields=['dingdan_id'], name='shangjia_li_dingdan_95b682_idx')],
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='PopupImage',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('image_url', models.CharField(max_length=500, verbose_name='图片相对路径')),
|
||
('text', models.TextField(blank=True, verbose_name='图片上方文字')),
|
||
('sort_order', models.PositiveIntegerField(default=0, verbose_name='展示顺序')),
|
||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||
('popup_config', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='images', to='config.popupconfig')),
|
||
],
|
||
options={
|
||
'verbose_name': '弹窗图片',
|
||
'verbose_name_plural': '弹窗图片',
|
||
'db_table': 'popup_image',
|
||
'ordering': ['sort_order', 'id'],
|
||
},
|
||
),
|
||
migrations.AddField(
|
||
model_name='popupconfig',
|
||
name='page',
|
||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='popups', to='config.popuppage'),
|
||
),
|
||
migrations.CreateModel(
|
||
name='DailyPayoutStat',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('date', models.DateField(db_index=True, unique=True, verbose_name='统计日期')),
|
||
('year', models.PositiveSmallIntegerField(verbose_name='年份')),
|
||
('month', models.PositiveSmallIntegerField(verbose_name='月份')),
|
||
('day', models.PositiveSmallIntegerField(verbose_name='日期')),
|
||
('total_amount', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='出款总额')),
|
||
('total_count', models.PositiveIntegerField(default=0, verbose_name='出款总笔数')),
|
||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
||
],
|
||
options={
|
||
'verbose_name': '每日出款统计',
|
||
'verbose_name_plural': '每日出款统计',
|
||
'db_table': 'daily_payout_stat',
|
||
'indexes': [models.Index(fields=['date'], name='daily_payou_date_b534ec_idx'), models.Index(fields=['year', 'month', 'day'], name='daily_payou_year_6376ca_idx')],
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='DailyIncomeStat',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('date', models.DateField(db_index=True, unique=True, verbose_name='统计日期')),
|
||
('year', models.PositiveSmallIntegerField(verbose_name='年份')),
|
||
('month', models.PositiveSmallIntegerField(verbose_name='月份')),
|
||
('day', models.PositiveSmallIntegerField(verbose_name='日期')),
|
||
('total_amount', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='总收入金额')),
|
||
('total_count', models.PositiveIntegerField(default=0, verbose_name='总收入笔数')),
|
||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
||
],
|
||
options={
|
||
'verbose_name': '每日收入统计',
|
||
'verbose_name_plural': '每日收入统计',
|
||
'db_table': 'daily_income_stat',
|
||
'indexes': [models.Index(fields=['date'], name='daily_incom_date_75e6df_idx'), models.Index(fields=['year', 'month', 'day'], name='daily_incom_year_d85d10_idx')],
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='AccountPermission',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('account_id', models.CharField(db_index=True, max_length=11, verbose_name='账号ID')),
|
||
('permission_code', models.IntegerField(verbose_name='权限代码')),
|
||
('is_enabled', models.BooleanField(default=False, verbose_name='是否开启')),
|
||
],
|
||
options={
|
||
'verbose_name': '账号权限',
|
||
'verbose_name_plural': '账号权限',
|
||
'db_table': 'account_permission',
|
||
'unique_together': {('account_id', 'permission_code')},
|
||
},
|
||
),
|
||
migrations.AlterUniqueTogether(
|
||
name='popupconfig',
|
||
unique_together={('page', 'popup_id')},
|
||
),
|
||
]
|