feat: initial commit and ignore qwen files
This commit is contained in:
62
backend/app/schemas/approval.py
Normal file
62
backend/app/schemas/approval.py
Normal file
@ -0,0 +1,62 @@
|
||||
"""缺料审批 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
|
||||
Reference in New Issue
Block a user