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

53 lines
2.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from app.core.base_schema import CommonSchema
"""花粉档案 —— Pydantic 校验/序列化模型。"""
from datetime import date, datetime
from pydantic import BaseModel, ConfigDict, Field
class PollenBaseSchema(BaseModel):
model_config = ConfigDict(from_attributes=True)
lot_code: str = Field(..., description="花粉批次号(如 PL-2026-0001")
male_tree_id: int | None = Field(default=None, description="采集父本树(混合/外地采集可空)")
source_type: str = Field(default="tree", description="来源类型 tree/mixed/external")
source_desc: str | None = Field(default=None, description="来源说明(混合配比/外地品种)")
collect_date: date | None = Field(default=None, description="花粉采集日期")
collect_method: str | None = Field(default=None, description="采集方式(采花取粉/振动收集…)")
quantity: str | None = Field(default=None, description="采集量(如 50g / 花药数)")
storage_method: str = Field(default="fridge", description="贮藏方式 fridge/minus20/minus80/liquid_n2")
viability_method: str | None = Field(default=None, description="活力测定方法 ttc/germination")
viability_pct: float | None = Field(default=None, description="花粉活力 %")
viability_test_date: date | None = Field(default=None, description="活力测定日期")
expiry_date: date | None = Field(default=None, description="有效期/失效日期(授粉窗口上界)")
remark: str | None = Field(default=None, description="备注")
class PollenCreateSchema(PollenBaseSchema):
pass
class PollenUpdateSchema(PollenBaseSchema):
lot_code: str | None = Field(default=None, description="花粉批次号")
male_tree_id: int | None = Field(default=None, description="采集父本树")
source_type: str | None = Field(default=None, description="来源类型 tree/mixed/external")
storage_method: str | None = Field(default=None, description="贮藏方式 fridge/minus20/minus80/liquid_n2")
class PollenOutSchema(PollenBaseSchema):
id: int
uuid: str
male_tree_no: str | None = None # 由 Service 层联表填充
created_time: datetime | None = None
updated_time: datetime | None = None
created_by: CommonSchema | None = None
updated_by: CommonSchema | None = None
class PollenQueryParam(BaseModel):
lot_code: str | None = Field(default=None, description="花粉批次号", json_schema_extra={"q": "like"})
male_tree_id: int | None = Field(default=None, description="采集父本树", json_schema_extra={"q": "eq"})
source_type: str | None = Field(default=None, description="来源类型", json_schema_extra={"q": "eq"})
storage_method: str | None = Field(default=None, description="贮藏方式", json_schema_extra={"q": "eq"})
viability_method: str | None = Field(default=None, description="活力测定方法", json_schema_extra={"q": "eq"})