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

83 lines
4.5 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 datetime
from pydantic import BaseModel, ConfigDict, Field
class CrossCombinationBaseSchema(BaseModel):
model_config = ConfigDict(from_attributes=True)
combination_code: str | None = Field(default=None, description="组合编号(留空自动生成 YY+3位序号)")
cross_year: int | None = Field(default=None, description="杂交年份")
bre_target_id: int = Field(..., description="育种目标")
female_parent_id: int | None = Field(default=None, description="母本")
male_parent_id: int | None = Field(default=None, description="父本")
cross_method: str | None = Field(default=None, description="杂交方式")
cross_type: str | None = Field(default=None, description="杂交类型(杂交/自交/开放)")
design_type: str = Field(
default="full_diallel",
description="交配设计(full_diallel完全双列/partial_diallel部分双列/line_tester line×tester NCII/nciii NCIII测交)",
)
parent_combination_id: int | None = Field(default=None, description="母本组合(自关联)")
reason: str | None = Field(default=None, description="组配理由")
stage: str | None = Field(default=None, description="育种阶段(breeding_stage)")
cross_date: str | None = Field(default=None, description="杂交日期")
seed_count: int | None = Field(default=None, description="获种数")
remark: str | None = Field(default=None, description="备注")
class CrossCombinationCreateSchema(CrossCombinationBaseSchema):
pass
class CrossCombinationUpdateSchema(CrossCombinationBaseSchema):
combination_code: str | None = Field(default=None, description="组合编号")
cross_year: int | None = Field(default=None, description="杂交年份")
bre_target_id: int | None = Field(default=None, description="育种目标")
female_parent_id: int | None = Field(default=None, description="母本")
male_parent_id: int | None = Field(default=None, description="父本")
cross_method: str | None = Field(default=None, description="杂交方式")
cross_type: str | None = Field(default=None, description="杂交类型(杂交/自交/开放)")
design_type: str | None = Field(default=None, description="交配设计")
parent_combination_id: int | None = Field(default=None, description="母本组合(自关联)")
reason: str | None = Field(default=None, description="组配理由")
stage: str | None = Field(default=None, description="育种阶段(breeding_stage)")
cross_date: str | None = Field(default=None, description="杂交日期")
seed_count: int | None = Field(default=None, description="获种数")
remark: str | None = Field(default=None, description="备注")
class CrossCombinationOutSchema(CrossCombinationBaseSchema):
id: int
uuid: str
combination_code: str | None = None
cross_year: int | None = None
bre_target_name: str | None = None # 由 Service 层联表填充
female_parent_name: str | None = None # 由 Service 层联表填充
male_parent_name: str | None = None # 由 Service 层联表填充
parent_combination_code: str | None = None # 由 Service 层联表填充
s_compat: str | None = None # 由 Service 层按亲本 S-等位基因计算(完全兼容/半兼容/不相容)
cross_method: str | None = None
cross_type: str | None = None
reason: str | None = None
stage: str | None = None
cross_date: str | None = None
seed_count: int | 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 CrossCombinationQueryParam(BaseModel):
combination_code: str | None = Field(default=None, description="组合编号", json_schema_extra={"q": "like"})
cross_year: int | None = Field(default=None, description="杂交年份", json_schema_extra={"q": "eq"})
bre_target_id: int | None = Field(default=None, description="育种目标", json_schema_extra={"q": "eq"})
cross_method: str | None = Field(default=None, description="杂交方式", json_schema_extra={"q": "eq"})
cross_type: str | None = Field(default=None, description="杂交类型", json_schema_extra={"q": "eq"})
design_type: str | None = Field(default=None, description="交配设计", json_schema_extra={"q": "eq"})
stage: str | None = Field(default=None, description="育种阶段", json_schema_extra={"q": "eq"})