Files

39 lines
1.8 KiB
Python

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