Files
medical_training/apps/user/migrations/0001_initial.py
T

129 lines
8.6 KiB
Python

# Generated by Django 6.0.5 on 2026-05-26 07:02
import django.db.models.deletion
import django.utils.timezone
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
('auth', '0012_alter_user_first_name_max_length'),
]
operations = [
migrations.CreateModel(
name='Institution',
fields=[
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('id', models.BigAutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=255, verbose_name='名称')),
('type', models.CharField(choices=[('hospital', '医院'), ('school', '学校')], max_length=30, verbose_name='类型')),
('level', models.CharField(blank=True, max_length=30, verbose_name='等级')),
('province', models.CharField(blank=True, max_length=50, verbose_name='省份')),
('city', models.CharField(blank=True, max_length=50, verbose_name='城市')),
],
options={
'verbose_name': '机构',
'verbose_name_plural': '机构',
'db_table': 'institution',
},
),
migrations.CreateModel(
name='Role',
fields=[
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('id', models.BigAutoField(primary_key=True, serialize=False)),
('role_code', models.CharField(max_length=50, unique=True, verbose_name='角色编码')),
('role_name', models.CharField(max_length=50, verbose_name='角色名称')),
],
options={
'verbose_name': '角色',
'verbose_name_plural': '角色',
'db_table': 'role',
},
),
migrations.CreateModel(
name='Department',
fields=[
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('id', models.BigAutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=100, verbose_name='科室名称')),
('category', models.CharField(blank=True, max_length=50, verbose_name='科室分类')),
('institution', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user.institution', verbose_name='所属机构')),
],
options={
'verbose_name': '科室',
'verbose_name_plural': '科室',
'db_table': 'department',
},
),
migrations.CreateModel(
name='User',
fields=[
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('id', models.BigAutoField(primary_key=True, serialize=False)),
('username', models.CharField(max_length=50, unique=True, verbose_name='用户名')),
('password', models.CharField(max_length=255, verbose_name='密码')),
('real_name', models.CharField(blank=True, max_length=50, verbose_name='真实姓名')),
('phone', models.CharField(blank=True, max_length=20, verbose_name='手机号')),
('avatar', models.CharField(blank=True, max_length=255, verbose_name='头像')),
('gender', models.SmallIntegerField(choices=[(0, '未知'), (1, ''), (2, '')], default=0, verbose_name='性别')),
('role_type', models.CharField(blank=True, max_length=30, verbose_name='主角色')),
('title_name', models.CharField(blank=True, max_length=50, verbose_name='职称')),
('major', models.CharField(blank=True, max_length=100, verbose_name='专业')),
('training_stage', models.CharField(blank=True, max_length=50, verbose_name='培训阶段')),
('learning_target', models.CharField(blank=True, max_length=255, verbose_name='学习目标')),
('competency_profile', models.JSONField(blank=True, default=dict, verbose_name='能力画像')),
('weak_dimensions', models.JSONField(blank=True, default=list, verbose_name='薄弱项')),
('strong_dimensions', models.JSONField(blank=True, default=list, verbose_name='优势项')),
('ai_preference', models.JSONField(blank=True, default=dict, verbose_name='AI训练偏好')),
('total_training_count', models.IntegerField(default=0, verbose_name='总训练次数')),
('total_case_count', models.IntegerField(default=0, verbose_name='完成病例数')),
('current_level', models.CharField(blank=True, max_length=30, verbose_name='当前能力等级')),
('status', models.SmallIntegerField(choices=[(0, '禁用'), (1, '正常')], default=1, verbose_name='状态')),
('last_login_time', models.DateTimeField(blank=True, null=True, verbose_name='最后登录')),
('is_staff', models.BooleanField(default=False, verbose_name='staff status')),
('is_active', models.BooleanField(default=True, verbose_name='active')),
('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')),
('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')),
('department', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='user.department', verbose_name='所属科室')),
('institution', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='user.institution', verbose_name='所属机构')),
],
options={
'verbose_name': '用户',
'verbose_name_plural': '用户',
'db_table': 'user',
},
),
migrations.CreateModel(
name='TeacherStudentRelation',
fields=[
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('id', models.BigAutoField(primary_key=True, serialize=False)),
('relation_type', models.CharField(blank=True, max_length=30, verbose_name='关系类型')),
('start_time', models.DateTimeField(blank=True, null=True, verbose_name='开始时间')),
('end_time', models.DateTimeField(blank=True, null=True, verbose_name='结束时间')),
('status', models.SmallIntegerField(choices=[(0, '已结束'), (1, '进行中')], default=1, verbose_name='状态')),
('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='student_relations', to=settings.AUTH_USER_MODEL, verbose_name='学员')),
('teacher', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='teacher_relations', to=settings.AUTH_USER_MODEL, verbose_name='带教老师')),
],
options={
'verbose_name': '师生关系',
'verbose_name_plural': '师生关系',
'db_table': 'teacher_student_relation',
},
),
]