Files
student-management-system/schemas/employ_schema.py
T
2026-09-18 16:53:21 +08:00

37 lines
1.4 KiB
Python

# 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)