package dto import "time" // ============================================================================================================= // 库存 (Inventory) 相关 DTO // ============================================================================================================= // StockAdjustmentRequest 手动调整库存的请求体 type StockAdjustmentRequest struct { RawMaterialID uint32 `json:"raw_material_id" validate:"required"` // 要调整的原料ID ChangeAmount float32 `json:"change_amount" validate:"required,ne=0"` // 变动数量, 正数为入库, 负数为出库, 单位: g Remarks string `json:"remarks" validate:"max=255"` // 备注 } // CurrentStockResponse 单个原料及其当前库存的响应体 type CurrentStockResponse struct { RawMaterialID uint32 `json:"raw_material_id"` // 原料ID RawMaterialName string `json:"raw_material_name"` // 原料名称 Stock float32 `json:"stock"` // 当前库存量, 单位: g LastUpdated string `json:"last_updated"` // 最后更新时间 } // ListCurrentStockRequest 定义了获取当前库存列表的请求参数 type ListCurrentStockRequest struct { Page int `json:"page" query:"page"` // 页码 PageSize int `json:"page_size" query:"page_size"` // 每页数量 RawMaterialName *string `json:"raw_material_name" query:"raw_material_name"` // 按原料名称模糊查询 OrderBy string `json:"order_by" query:"order_by"` // 排序字段, 例如 "stock DESC" } // ListCurrentStockResponse 是获取当前库存列表的响应结构 type ListCurrentStockResponse struct { List []CurrentStockResponse `json:"list"` Pagination PaginationDTO `json:"pagination"` } // StockLogResponse 库存变动历史记录的响应体 type StockLogResponse struct { ID uint32 `json:"id"` RawMaterialID uint32 `json:"raw_material_id"` RawMaterialName string `json:"raw_material_name"` ChangeAmount float32 `json:"change_amount"` BeforeQuantity float32 `json:"before_quantity"` AfterQuantity float32 `json:"after_quantity"` SourceType string `json:"source_type"` SourceID *uint32 `json:"source_id,omitempty"` HappenedAt time.Time `json:"happened_at"` Remarks string `json:"remarks"` } // ListStockLogRequest 定义了获取库存变动历史的请求参数 type ListStockLogRequest struct { Page int `json:"page" query:"page"` // 页码 PageSize int `json:"page_size" query:"page_size"` // 每页数量 RawMaterialID *uint32 `json:"raw_material_id" query:"raw_material_id"` // 按原料ID精确查询 SourceTypes []string `json:"source_types" query:"source_types"` // 按来源类型查询 StartTime *string `json:"start_time" query:"start_time"` // 开始时间 (RFC3339格式, e.g., "2023-01-01T00:00:00Z") EndTime *string `json:"end_time" query:"end_time"` // 结束时间 (RFC3339格式) OrderBy string `json:"order_by" query:"order_by"` // 排序字段 } // ListStockLogResponse 是获取库存变动历史列表的响应结构 type ListStockLogResponse struct { List []StockLogResponse `json:"list"` Pagination PaginationDTO `json:"pagination"` }