Files
zkxw/backend/app/schemas/material.py
T
zlwuandCursor c4a6ecfd7d feat(market): 新增 MyMaterialUsageQuery schema
- 新增 MyMaterialUsageQuery 查询参数 schema
- 新增 MaterialUsageResponse 响应 schema(含 requisitionStatus 字段)
- 新增 MyMaterialUsageListResponse 列表响应 schema

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-15 13:56:53 +08:00

59 lines
2.0 KiB
Python

"""Pydantic schemas - 市场物料管理"""
from pydantic import BaseModel, Field
from typing import Optional, List
from datetime import datetime
class MyMaterialUsageQuery(BaseModel):
"""我的物料领用记录查询参数"""
keyword: Optional[str] = Field(None, description="关键词搜索")
material_id: Optional[str] = Field(None, description="物料ID")
material_type: Optional[str] = Field(None, description="物料类型")
change_type: Optional[str] = Field(None, description="变动类型")
start_time: Optional[str] = Field(None, description="开始日期 YYYY-MM-DD")
end_time: Optional[str] = Field(None, description="结束日期 YYYY-MM-DD")
class MaterialUsageResponse(BaseModel):
"""物料领用记录响应"""
id: str
materialId: Optional[str] = None
materialCode: Optional[str] = None
materialName: Optional[str] = None
batchId: Optional[str] = None
stockInNo: Optional[str] = None
stockInDate: Optional[str] = None
catalogNo: Optional[str] = None
batchNo: Optional[str] = None
manufacturer: Optional[str] = None
unitPrice: Optional[float] = None
amount: Optional[float] = None
changeType: Optional[str] = None
changeQty: Optional[float] = None
usageUnit: Optional[str] = None
stockBefore: Optional[float] = None
stockAfter: Optional[float] = None
receiver: Optional[str] = None
receiverName: Optional[str] = None
purpose: Optional[str] = None
sourceType: Optional[str] = None
requisitionStatus: Optional[str] = Field(None, description="领用状态: open/closed")
useTime: Optional[str] = None
remark: Optional[str] = None
createBy: Optional[str] = None
createByName: Optional[str] = None
createTime: Optional[str] = None
updateTime: Optional[str] = None
class Config:
from_attributes = True
class MyMaterialUsageListResponse(BaseModel):
"""我的物料领用记录列表响应"""
items: List[MaterialUsageResponse]
total: int
page: int
pageSize: int
totalPages: int