Files
DoubaoTeam/schemas/employment.py
T

39 lines
1.9 KiB
Python

from pydantic import BaseModel, Field,ConfigDict
from datetime import date, datetime
from decimal import Decimal
class EmploymentCreate(BaseModel):
"""新增就业信息 请求体 Schema"""
student_id: int = Field(..., description="关联学生ID,必填")
employment_status: str | None = Field(None, description="就业状态:not_started/job_hunting/offered/employed")
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
model_config = ConfigDict(from_attributes=True) #允许pydantic从对象属性里取值