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

60 lines
2.6 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.
"""农事操作 —— Pydantic 校验/序列化模型。"""
from datetime import date, datetime
from pydantic import BaseModel, ConfigDict, Field
from app.core.base_schema import CommonSchema
class FieldOperationBaseSchema(BaseModel):
model_config = ConfigDict(from_attributes=True)
tree_id: int | None = Field(default=None, description="单株(可空)")
plot_id: int | None = Field(default=None, description="小区(可空)")
op_type: str = Field(..., description="操作类型(field_operation 字典: fertilize/spray/prune/irrigate/thinning/bagging/harvest)")
op_date: date | None = Field(default=None, description="操作日期")
op_detail: str | None = Field(default=None, description="操作详情/用量")
yield_kg: float | None = Field(default=None, description="单株产量(kgop_type=harvest)")
fruit_count: int | None = Field(default=None, description="果实个数(op_type=harvest)")
avg_fruit_weight: float | None = Field(default=None, description="平均单果重(gop_type=harvest)")
marketable_rate: float | None = Field(default=None, description="好果率(%op_type=harvest)")
operator_id: int | None = Field(default=None, description="操作人(育种人员)")
remark: str | None = Field(default=None, description="备注")
class FieldOperationCreateSchema(FieldOperationBaseSchema):
pass
class FieldOperationUpdateSchema(FieldOperationBaseSchema):
op_type: str | None = Field(default=None, description="操作类型(field_operation 字典: fertilize/spray/prune/irrigate/thinning/bagging/harvest)")
class FieldOperationOutSchema(FieldOperationBaseSchema):
id: int
uuid: str
op_type: str | None = None
tree_id: int | None = None
tree_no: str | None = None # 由 Service 层联表填充
plot_id: int | None = None
plot_label: str | None = None # 由 Service 层联表填充
op_date: date | None = None
op_detail: str | None = None
yield_kg: float | None = None
fruit_count: int | None = None
avg_fruit_weight: float | None = None
marketable_rate: float | None = None
operator_id: int | None = None
operator_name: str | None = None # 由 Service 层联表填充
remark: str | None = None
status: int | None = None
created_time: datetime | None = None
updated_time: datetime | None = None
created_by: CommonSchema | None = None
updated_by: CommonSchema | None = None
class FieldOperationQueryParam(BaseModel):
op_type: str | None = Field(default=None, description="操作类型", json_schema_extra={"q": "eq"})
operator_id: int | None = Field(default=None, description="操作人", json_schema_extra={"q": "eq"})