# 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', }, ), ]