2026-06-03 17:34:47 +08:00
# 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 ' ,
} ,
) ,
]