Files
SCGL/backend/app/schemas/approval.py

63 lines
1.6 KiB
Python
Raw Permalink 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.

"""缺料审批 Schema
核心原则:
- 所有写操作仅在 pms_db 中进行
- 绝对禁止对 inventory_db 进行任何写操作
- 物料信息仅从 inventory_db 查询获取,不进行写操作
"""
from pydantic import BaseModel, Field
from datetime import datetime
from app.models.production import ApprovalStatus
class ApprovalCreate(BaseModel):
"""创建缺料审批申请"""
work_order_id: int = Field(..., description="工单ID")
missing_material_id: int = Field(..., description="缺失物料ID")
required_qty: int = Field(gt=0, description="需要补充的数量")
reason: str | None = Field(None, max_length=500, description="申请原因")
class ApprovalStatusUpdate(BaseModel):
"""审批状态更新"""
status: ApprovalStatus = Field(
...,
description="新状态APPROVED 或 REJECTED"
)
class ApprovalResponse(BaseModel):
"""基础缺料审批响应"""
id: int
work_order_id: int
missing_material_id: int
required_qty: int
reason: str | None
status: ApprovalStatus
created_at: datetime
class Config:
from_attributes = True
class ApprovalDetailResponse(BaseModel):
"""带详情的缺料审批响应
包含:
- 工单编号
- 物料名称
- 其他基本信息
"""
id: int
work_order_id: int
work_order_no: str = Field(..., description="工单编号")
missing_material_id: int
material_name: str = Field(..., description="物料名称")
required_qty: int
reason: str | None
status: ApprovalStatus
created_at: datetime
class Config:
from_attributes = True