init: 初始化 dpb 桃育种系统代码库
前后端 + 后端 FastAPI 全量源码、部署脚本与文档。
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
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"})
|
||||
Reference in New Issue
Block a user