Files
dpb/backend/app/api/v1/module_bre/environment_condition/schema.py
T
34047007@qq.com b95053c52c init: 初始化 dpb 桃育种系统代码库
前后端 + 后端 FastAPI 全量源码、部署脚本与文档。
2026-08-06 00:17:49 +08:00

62 lines
2.7 KiB
Python

"""环境因子 —— Pydantic 校验/序列化模型。"""
from datetime import datetime
from decimal import Decimal
from pydantic import BaseModel, ConfigDict, Field
from app.core.base_schema import CommonSchema
class EnvironmentConditionBaseSchema(BaseModel):
model_config = ConfigDict(from_attributes=True)
site_id: int = Field(..., description="试验基地")
year: int = Field(..., description="年份")
chilling_hours: Decimal | None = Field(default=None, description="需冷量(小时)")
growing_degree_days: Decimal | None = Field(default=None, description="生长度日 GDD")
rainfall_mm: Decimal | None = Field(default=None, description="降水量(mm)")
temp_avg: Decimal | None = Field(default=None, description="年均温度(℃)")
soil_moisture: Decimal | None = Field(default=None, description="土壤湿度")
source: str | None = Field(default=None, description="数据来源")
remark: str | None = Field(default=None, description="备注")
class EnvironmentConditionCreateSchema(EnvironmentConditionBaseSchema):
pass
class EnvironmentConditionUpdateSchema(EnvironmentConditionBaseSchema):
site_id: int | None = Field(default=None, description="试验基地")
year: int | None = Field(default=None, description="年份")
chilling_hours: Decimal | None = Field(default=None, description="需冷量(小时)")
growing_degree_days: Decimal | None = Field(default=None, description="生长度日 GDD")
rainfall_mm: Decimal | None = Field(default=None, description="降水量(mm)")
temp_avg: Decimal | None = Field(default=None, description="年均温度(℃)")
soil_moisture: Decimal | None = Field(default=None, description="土壤湿度")
source: str | None = Field(default=None, description="数据来源")
remark: str | None = Field(default=None, description="备注")
class EnvironmentConditionOutSchema(EnvironmentConditionBaseSchema):
id: int
uuid: str
site_id: int | None = None
year: int | None = None
site_name: str | None = None # 由 Service 层联表填充
chilling_hours: Decimal | None = None
growing_degree_days: Decimal | None = None
rainfall_mm: Decimal | None = None
temp_avg: Decimal | None = None
soil_moisture: Decimal | None = None
source: str | None = None
remark: str | None = None
created_time: datetime | None = None
updated_time: datetime | None = None
created_by: CommonSchema | None = None
updated_by: CommonSchema | None = None
class EnvironmentConditionQueryParam(BaseModel):
site_id: int | None = Field(default=None, description="试验基地", json_schema_extra={"q": "eq"})
year: int | None = Field(default=None, description="年份", json_schema_extra={"q": "eq"})