diff --git a/models/teacher.py b/models/teacher.py index e69de29..fe6ff57 100644 --- a/models/teacher.py +++ b/models/teacher.py @@ -0,0 +1,109 @@ +from sqlalchemy import (Column, Integer, String, Text, + BigInteger,ForeignKey,VARCHAR,DateTime + ) +from sqlalchemy.dialects.mssql import TINYINT + +from core.database import Base +from datetime import datetime + + +# teachers 老师表 ORM 模型 +#字段包括id,teacher_no,teacher_name,phone,email,remark,created_at,updated_at,is_deleted +class Teacher(Base): + __tablename__ = 'teachers_info_detail' + id = Column( + Integer + , primary_key=True + ,autoincrement=True + ,comment='老师主键') + teacher_no = Column( + VARCHAR(50) + ,nullable=False + ,unique=True + ,comment='老师编号' + ) + teacher_name = Column( + VARCHAR(50) + ,nullable=False + ,comment='老师名字' + ) + phone = Column( + VARCHAR(20) + ,nullable=True + ,comment='老师电话' + ) + email = Column( + VARCHAR(100) + ,nullable=True + ,comment='邮箱' + ) + remark = Column( + VARCHAR(2550) + ,nullable=True + ,comment='备注' + ) + created_at = Column( + DateTime + ,nullable=False + ,default=datetime.now + ,comment='创建时间' + ) + updated_at = Column( + DateTime + ,nullable=False + ,default=datetime.now + ,comment='更新时间' + ) + is_deleted = Column( + TINYINT + ,nullable=False + ,default=0 + ,comment='逻辑删除' + ) + + +#班级老师关系表 class_teachers_info_detail 中间表 ORM 模型完整定义 +#字段包括id,class_id,teacher_id,role,created_at,updated_at,is_deleted +class ClassTeachers(Base): + __tablename__ = "class_teachers_info_detail" + id = Column( + BigInteger + ,primary_key=True + ,autoincrement=True + ,comment='关系') + class_id = Column( + BigInteger + ,ForeignKey('class_id') + ,nullable=False + ,comment='关联 class_id' + ) + teacher_id = Column( + BigInteger + ,ForeignKey('teacher_id') + ,nullable=False + ,comment='关联 teacher_id' + ) + role = Column( + VARCHAR(30) + ,nullable=False + ,comment='老师在班级中的角色:head_teacher班主任 / lecturer授课老师 / assistant助教' + ) + created_at = Column( + DateTime + ,nullable=False + ,default=datetime.now() + ,comment='创建时间' + ) + updated_at = Column( + DateTime + ,nullable=False + ,default=datetime.now() + ,comment='更新时间' + ) + is_deleted = Column( + TINYINT + ,nullable=False + ,default=0 + ,comment='逻辑删除' + ) + diff --git a/schemas/teacher.py b/schemas/teacher.py index e69de29..93cb1fb 100644 --- a/schemas/teacher.py +++ b/schemas/teacher.py @@ -0,0 +1,19 @@ +from pydantic import BaseModel +from typing import Optional +from datetime import datetime +#===============老师表=================== +#===============请求体模型================ +class TeacherCreate(BaseModel): + teacher_no: Optional[str] = None + teacher_name: Optional[str] = None + email: Optional[str] = None + phone: Optional[str] = None + remark: Optional[str] = None + +class TeacherUpdate(BaseModel): + teacher_no: Optional[str] = None + teacher_name: Optional[str] = None + email: Optional[str] = None + phone: Optional[str] = None + remark: Optional[str] = None +