44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
# path: schema/employment_schema.py
|
||
# time:2026年9月12日10:30
|
||
# title:就业信息,请求模型、响应模型
|
||
# author:周兴
|
||
# info:定义API接收的数据、返回的数据的格式,通过Pydantic做数据校验
|
||
|
||
from pydantic import BaseModel, Field, ConfigDict
|
||
from datetime import datetime
|
||
|
||
# 新增就业信息 请求模型
|
||
class EmploymentCreate(BaseModel):
|
||
# 学生ID,新增就业信息时必须指定学生
|
||
student_id: int
|
||
# 就业开放时间
|
||
employment_start_time: datetime | None = None
|
||
# offer下发时间
|
||
offer_time: datetime | None = None
|
||
# 就业公司名称
|
||
company_name: str | None = None
|
||
# 就业薪资,不能小于0
|
||
salary: float | None = Field(default=None, ge=0)
|
||
|
||
# 修改就业信息 请求模型
|
||
class EmploymentUpdate(BaseModel):
|
||
# 修改时所有字段都可以不传
|
||
employment_start_time: datetime | None = None
|
||
offer_time: datetime | None = None
|
||
company_name: str | None = None
|
||
salary: float | None = Field(default=None, ge=0)
|
||
|
||
# 就业信息 响应模型
|
||
# API返回给用户的数据格式
|
||
class EmploymentResponse(BaseModel):
|
||
id: int
|
||
student_id: int
|
||
employment_start_time: datetime | None = None
|
||
offer_time: datetime | None = None
|
||
company_name: str | None = None
|
||
salary: float | None = None
|
||
flag: int
|
||
|
||
# 允许 Pydantic 读取 SQLAlchemy ORM 对象
|
||
model_config = ConfigDict(from_attributes=True)
|