from pydantic import BaseModel,field_serializer from datetime import date from typing import List from schema.student_schema import StudentResponse class AllStuResponse(BaseModel): all_cnt: int class_id: int gender: str | None cnt: int class AcgScoreResponse(BaseModel): class_id: int avg_score: float class GetScoreResponse(BaseModel): code:int = 200 detail:str = 'ok' score:float stu_name: str | None = None age: int | None = None gender: str | None = None native_place: str | None = None school: str | None = None major: str | None = None degree: str | None = None admission_date: date | None = None graduation_date: date | None = None progress: int = 0 @field_serializer('progress') def int_to_string(self, progress: int): d1 = { 0: '学习中', 1: '求职中', 2: '已就业' } return d1.get(progress, '暂不明确') class GetStuResponse(BaseModel): code:int = 200 detail:str = 'ok' salary:float stu_name: str | None = None age: int | None = None gender: str | None = None native_place: str | None = None school: str | None = None major: str | None = None degree: str | None = None admission_date: date | None = None graduation_date: date | None = None progress: int = 0 @field_serializer('progress') def int_to_string(self, progress: int): d1 = { 0: '学习中', 1: '求职中', 2: '已就业' } return d1.get(progress, '暂不明确') class AvgDayResponse(BaseModel): class_id: int avg_days: float | None class EmpItem(BaseModel): stu_id: int employment_opening_date:date | None offer_issuance_date:date | None employment_duration_day: int | None class AllEmpResponse(BaseModel): code: int msg: str data: List[EmpItem]