94 lines
5.2 KiB
Python
94 lines
5.2 KiB
Python
|
|
# Generated by Django 4.2.11 on 2026-04-10 12:05
|
||
|
|
|
||
|
|
from django.db import migrations, models
|
||
|
|
import django.db.models.deletion
|
||
|
|
|
||
|
|
|
||
|
|
class Migration(migrations.Migration):
|
||
|
|
|
||
|
|
initial = True
|
||
|
|
|
||
|
|
dependencies = [
|
||
|
|
]
|
||
|
|
|
||
|
|
operations = [
|
||
|
|
migrations.CreateModel(
|
||
|
|
name='ModeratorApplication',
|
||
|
|
fields=[
|
||
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
|
|
('application_reason', models.TextField(blank=True, verbose_name='申请理由')),
|
||
|
|
('support_count', models.PositiveIntegerField(default=0, verbose_name='支持人数')),
|
||
|
|
('required_support', models.PositiveIntegerField(default=10, verbose_name='所需支持人数')),
|
||
|
|
('deadline', models.DateTimeField(verbose_name='截止时间')),
|
||
|
|
('status', models.CharField(choices=[('pending', '待审核'), ('approved', '已通过'), ('rejected', '已拒绝'), ('cancelled', '已取消')], default='pending', max_length=20, verbose_name='状态')),
|
||
|
|
('reviewed_at', models.DateTimeField(blank=True, null=True, verbose_name='审核时间')),
|
||
|
|
('review_comment', models.TextField(blank=True, verbose_name='审核意见')),
|
||
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='申请时间')),
|
||
|
|
],
|
||
|
|
options={
|
||
|
|
'verbose_name': '版主申请',
|
||
|
|
'verbose_name_plural': '版主申请',
|
||
|
|
'ordering': ['-created_at'],
|
||
|
|
},
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name='ModeratorPermission',
|
||
|
|
fields=[
|
||
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
|
|
('rank', models.CharField(choices=[('general', '将军'), ('colonel', '校官'), ('lieutenant', '尉官'), ('soldier', '士兵')], max_length=20, verbose_name='军衔')),
|
||
|
|
('status', models.CharField(choices=[('active', '正常'), ('restricted', '限制'), ('revoked', '取消')], default='active', max_length=20, verbose_name='状态')),
|
||
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='授权时间')),
|
||
|
|
('restricted_until', models.DateTimeField(blank=True, null=True, verbose_name='限制截止时间')),
|
||
|
|
],
|
||
|
|
options={
|
||
|
|
'verbose_name': '版主权限',
|
||
|
|
'verbose_name_plural': '版主权限',
|
||
|
|
},
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name='ModeratorSupport',
|
||
|
|
fields=[
|
||
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='支持时间')),
|
||
|
|
],
|
||
|
|
options={
|
||
|
|
'verbose_name': '支持记录',
|
||
|
|
'verbose_name_plural': '支持记录',
|
||
|
|
},
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name='PermissionRestriction',
|
||
|
|
fields=[
|
||
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
|
|
('restriction_type', models.CharField(choices=[('partial', '部分限制'), ('full', '完全限制')], max_length=20, verbose_name='限制类型')),
|
||
|
|
('started_at', models.DateTimeField(auto_now_add=True, verbose_name='限制开始时间')),
|
||
|
|
('ended_at', models.DateTimeField(blank=True, null=True, verbose_name='限制结束时间')),
|
||
|
|
('reason', models.TextField(blank=True, verbose_name='限制原因')),
|
||
|
|
],
|
||
|
|
options={
|
||
|
|
'verbose_name': '权限限制',
|
||
|
|
'verbose_name_plural': '权限限制',
|
||
|
|
'ordering': ['-started_at'],
|
||
|
|
},
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name='Region',
|
||
|
|
fields=[
|
||
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
|
|
('name', models.CharField(max_length=100, verbose_name='名称')),
|
||
|
|
('level', models.CharField(choices=[('province', '省级'), ('city', '市级'), ('county', '县级'), ('town', '镇级'), ('village', '村级')], max_length=20, verbose_name='级别')),
|
||
|
|
('code', models.CharField(blank=True, max_length=20, verbose_name='行政区划代码')),
|
||
|
|
('description', models.TextField(blank=True, verbose_name='描述')),
|
||
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||
|
|
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
||
|
|
('is_active', models.BooleanField(default=True, verbose_name='是否启用')),
|
||
|
|
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='regions.region', verbose_name='上级区域')),
|
||
|
|
],
|
||
|
|
options={
|
||
|
|
'verbose_name': '区域',
|
||
|
|
'verbose_name_plural': '区域',
|
||
|
|
'ordering': ['level', 'name'],
|
||
|
|
},
|
||
|
|
),
|
||
|
|
]
|