29 lines
767 B
Python
29 lines
767 B
Python
"""齐套性推演接口 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]
|