from pydantic import BaseModel, Field from datetime import date, datetime from decimal import Decimal class EmploymentCreate(BaseModel): """新增就业信息 请求体 Schema""" student_id: int = Field(..., description="关联学生ID,必填")# description:在Swagger页面展示字段说明文字 employment_status: str | None = Field(None, description="就业状态,选填") employment_open_date: date | None = Field(None, description="就业开放时间,选填") offer_date: date | None = Field(None, description="offer下发时间,选填") company_name: str | None = Field(None, max_length=100, description="就业公司名称,选填") salary: Decimal | None = Field(None, ge=0, description="就业薪资,不能负数,选填") remark: str | None = Field(None, max_length=255, description="备注,选填") class EmploymentUpdate(BaseModel): """修改就业信息 请求体 Schema:全部字段可选,只传要修改的字段""" employment_status: str | None = Field(None, description="就业状态") employment_open_date: date | None = Field(None, description="就业开放时间") offer_date: date | None = Field(None, description="offer下发时间") company_name: str | None = Field(None, max_length=100, description="就业公司名称") salary: Decimal | None = Field(None, ge=0, description="就业薪资") remark: str | None = Field(None, max_length=255, description="备注") class EmploymentResponse(BaseModel): """就业信息返回响应体Schema,接口返回给前端的数据结构""" id: int student_id: int employment_status: str employment_open_date: date | None offer_date: date | None company_name: str | None salary: Decimal | None remark: str | None created_at: datetime | None updated_at: datetime | None