# schemas/employ_schema.py # 学生就业管理模块的 Pydantic 模式 from datetime import date from decimal import Decimal from typing import Optional from pydantic import BaseModel, ConfigDict, Field class EmployBase(BaseModel): """就业信息公共字段""" emp_open_time: Optional[date] = Field(default=None, description="就业开放时间") send_offer_time: Optional[date] = Field(default=None, description="收到Offer时间") emp_company: Optional[str] = Field(default=None, max_length=50, description="就业公司名称") salary: Optional[Decimal] = Field(default=None, ge=0, description="薪资(月薪/元)") class EmployCreate(EmployBase): """新增就业记录时,stu_id 必填(与学生一对一)""" stu_id: str = Field(..., max_length=15, description="学生编号(主键)") class EmployUpdate(BaseModel): """更新就业信息:仅更新传入的字段""" emp_open_time: Optional[date] = Field(default=None, description="就业开放时间") send_offer_time: Optional[date] = Field(default=None, description="收到Offer时间") emp_company: Optional[str] = Field(default=None, max_length=50, description="就业公司名称") salary: Optional[Decimal] = Field(default=None, ge=0, description="薪资(月薪/元)") class EmployOut(EmployBase): """就业响应模型(含 stu_id 与软删除标记)""" stu_id: str is_deleted: int model_config = ConfigDict(from_attributes=True)