175 lines
10 KiB
Python
175 lines
10 KiB
Python
# Generated manually for club migrate module
|
|
|
|
from decimal import Decimal
|
|
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('jituan', '0020_order_deal_config_stats'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='ClubMigratePlan',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('plan_id', models.CharField(db_index=True, max_length=32, unique=True, verbose_name='计划ID')),
|
|
('name', models.CharField(blank=True, default='', max_length=64, verbose_name='计划名称')),
|
|
('from_club_id', models.CharField(db_index=True, max_length=16, verbose_name='源俱乐部')),
|
|
('to_club_id', models.CharField(db_index=True, max_length=16, verbose_name='目标俱乐部')),
|
|
('enabled', models.BooleanField(db_index=True, default=False, verbose_name='是否启用')),
|
|
('start_at', models.DateTimeField(blank=True, null=True, verbose_name='开始时间')),
|
|
('end_at', models.DateTimeField(blank=True, null=True, verbose_name='结束时间')),
|
|
('asset_whitelist', models.JSONField(blank=True, default=list, verbose_name='资产白名单')),
|
|
('condition_json', models.JSONField(blank=True, default=dict, verbose_name='门槛条件')),
|
|
('force_intercept', models.BooleanField(default=True, verbose_name='源店强制迁移页')),
|
|
('force_roles', models.JSONField(blank=True, default=list, verbose_name='强制角色列表')),
|
|
('default_once_per_user', models.BooleanField(default=True, verbose_name='默认每人成功一次')),
|
|
('remark', models.CharField(blank=True, default='', max_length=255)),
|
|
('updated_by', models.CharField(blank=True, default='', max_length=32)),
|
|
('CreateTime', models.DateTimeField(auto_now_add=True)),
|
|
('UpdateTime', models.DateTimeField(auto_now=True)),
|
|
],
|
|
options={
|
|
'verbose_name': '跨店资产迁移计划',
|
|
'db_table': 'club_migrate_plan',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ClubMigrateToken',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('token', models.CharField(db_index=True, max_length=64, unique=True, verbose_name='令牌')),
|
|
('plan_id', models.CharField(db_index=True, max_length=32)),
|
|
('from_club_id', models.CharField(db_index=True, max_length=16)),
|
|
('to_club_id', models.CharField(db_index=True, max_length=16)),
|
|
('from_uid', models.CharField(db_index=True, max_length=16, verbose_name='源UserUID')),
|
|
('password_hash', models.CharField(blank=True, default='', max_length=128, verbose_name='转移密码哈希')),
|
|
('password_salt', models.CharField(blank=True, default='', max_length=32)),
|
|
('status', models.SmallIntegerField(db_index=True, default=0)),
|
|
('fail_count', models.PositiveIntegerField(default=0, verbose_name='验密失败次数')),
|
|
('asset_snapshot', models.JSONField(blank=True, default=dict, verbose_name='发码时资产快照')),
|
|
('qrcode_url', models.CharField(blank=True, default='', max_length=512, verbose_name='目标店小程序码URL')),
|
|
('expire_at', models.DateTimeField(blank=True, db_index=True, null=True)),
|
|
('consumed_at', models.DateTimeField(blank=True, null=True)),
|
|
('CreateTime', models.DateTimeField(auto_now_add=True)),
|
|
('UpdateTime', models.DateTimeField(auto_now=True)),
|
|
],
|
|
options={
|
|
'verbose_name': '跨店迁移令牌',
|
|
'db_table': 'club_migrate_token',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ClubMigrateConsumption',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('plan_id', models.CharField(db_index=True, max_length=32)),
|
|
('from_uid', models.CharField(db_index=True, max_length=16)),
|
|
('success_count', models.PositiveIntegerField(default=0)),
|
|
('last_ledger_id', models.BigIntegerField(blank=True, null=True)),
|
|
('CreateTime', models.DateTimeField(auto_now_add=True)),
|
|
('UpdateTime', models.DateTimeField(auto_now=True)),
|
|
],
|
|
options={
|
|
'verbose_name': '跨店迁移占用',
|
|
'db_table': 'club_migrate_consumption',
|
|
'unique_together': {('plan_id', 'from_uid')},
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ClubMigrateUserQuota',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('plan_id', models.CharField(db_index=True, max_length=32)),
|
|
('from_uid', models.CharField(db_index=True, max_length=16)),
|
|
('max_extra_times', models.PositiveIntegerField(default=1, verbose_name='额外成功次数')),
|
|
('reason', models.CharField(blank=True, default='', max_length=255)),
|
|
('updated_by', models.CharField(blank=True, default='', max_length=32)),
|
|
('CreateTime', models.DateTimeField(auto_now_add=True)),
|
|
('UpdateTime', models.DateTimeField(auto_now=True)),
|
|
],
|
|
options={
|
|
'verbose_name': '跨店迁移二次白名单',
|
|
'db_table': 'club_migrate_user_quota',
|
|
'unique_together': {('plan_id', 'from_uid')},
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ClubMigrateLedger',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('plan_id', models.CharField(db_index=True, max_length=32)),
|
|
('token', models.CharField(blank=True, db_index=True, default='', max_length=64)),
|
|
('from_club_id', models.CharField(db_index=True, max_length=16)),
|
|
('to_club_id', models.CharField(db_index=True, max_length=16)),
|
|
('from_uid', models.CharField(db_index=True, max_length=16)),
|
|
('to_uid', models.CharField(db_index=True, max_length=16)),
|
|
('migrate_seq', models.PositiveIntegerField(default=1, verbose_name='本计划第几次')),
|
|
('status', models.SmallIntegerField(db_index=True, default=1)),
|
|
('summary_json', models.JSONField(blank=True, default=dict, verbose_name='摘要')),
|
|
('client_meta', models.JSONField(blank=True, default=dict)),
|
|
('CreateTime', models.DateTimeField(auto_now_add=True, db_index=True)),
|
|
('UpdateTime', models.DateTimeField(auto_now=True)),
|
|
],
|
|
options={
|
|
'verbose_name': '跨店迁移流水主单',
|
|
'db_table': 'club_migrate_ledger',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ClubMigrateLedgerItem',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('ledger_id', models.BigIntegerField(db_index=True)),
|
|
('plan_id', models.CharField(db_index=True, max_length=32)),
|
|
('item_type', models.CharField(db_index=True, default='balance', max_length=16)),
|
|
('role', models.CharField(db_index=True, max_length=16)),
|
|
('field', models.CharField(blank=True, default='', max_length=32, verbose_name='字段名')),
|
|
('amount', models.DecimalField(decimal_places=2, default=Decimal('0'), max_digits=14)),
|
|
('before_src', models.CharField(blank=True, default='', max_length=64)),
|
|
('after_src', models.CharField(blank=True, default='', max_length=64)),
|
|
('before_dst', models.CharField(blank=True, default='', max_length=64)),
|
|
('after_dst', models.CharField(blank=True, default='', max_length=64)),
|
|
('huiyuan_id', models.CharField(blank=True, db_index=True, default='', max_length=16)),
|
|
('meta_json', models.JSONField(blank=True, default=dict)),
|
|
('CreateTime', models.DateTimeField(auto_now_add=True)),
|
|
],
|
|
options={
|
|
'verbose_name': '跨店迁移流水明细',
|
|
'db_table': 'club_migrate_ledger_item',
|
|
},
|
|
),
|
|
migrations.AddIndex(
|
|
model_name='clubmigrateplan',
|
|
index=models.Index(fields=['from_club_id', 'enabled'], name='idx_cmp_from_en'),
|
|
),
|
|
migrations.AddIndex(
|
|
model_name='clubmigrateplan',
|
|
index=models.Index(fields=['to_club_id', 'enabled'], name='idx_cmp_to_en'),
|
|
),
|
|
migrations.AddIndex(
|
|
model_name='clubmigratetoken',
|
|
index=models.Index(fields=['plan_id', 'from_uid', 'status'], name='idx_cmt_plan_uid_st'),
|
|
),
|
|
migrations.AddIndex(
|
|
model_name='clubmigrateledger',
|
|
index=models.Index(fields=['from_uid', 'plan_id'], name='idx_cml_from_plan'),
|
|
),
|
|
migrations.AddIndex(
|
|
model_name='clubmigrateledger',
|
|
index=models.Index(fields=['to_uid', 'plan_id'], name='idx_cml_to_plan'),
|
|
),
|
|
migrations.AddIndex(
|
|
model_name='clubmigrateledger',
|
|
index=models.Index(fields=['from_club_id', 'to_club_id', 'CreateTime'], name='idx_cml_clubs_t'),
|
|
),
|
|
migrations.AddIndex(
|
|
model_name='clubmigrateledgeritem',
|
|
index=models.Index(fields=['ledger_id', 'role'], name='idx_cmli_led_role'),
|
|
),
|
|
]
|