"""齐套性推演接口 Schema""" from pydantic import BaseModel, Field from decimal import Decimal class MaterialRequirementItem(BaseModel): """物料需求项""" material_id: int = Field(alias="base_id") material_name: str spec_model: str | None unit: str | None required_quantity: Decimal = Field(ge=0) current_stock: Decimal = Field(default=Decimal("0")) shortage_quantity: Decimal = Field(ge=0) is_shortage: bool class Config: from_attributes = True populate_by_name = True class DeduceBomResponse(BaseModel): """齐套性推演响应""" target_base_id: int target_quantity: int is_shortage: bool total_shortage_count: int material_requirements: list[MaterialRequirementItem]