package dto import ( "assets/consts/stock" "gitea.com/red-future/common/beans" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gtime" "go.mongodb.org/mongo-driver/v2/bson" ) // CommonResp 通用响应 type CommonResp struct { Success bool `json:"success"` // 是否成功 Message string `json:"message"` // 消息 } // --- 批次管理API相关结构 --- // CreateBatchReq 创建批次请求 type CreateBatchReq struct { g.Meta `path:"/createBatch" method:"post" tags:"库存批次管理" summary:"创建批次" dc:"创建新的库存批次"` AssetId int64 `json:"assetId" v:"required" dc:"资产ID"` AssetSkuId int64 `json:"assetSkuId" v:"required" dc:"SKU ID"` BatchNo string `json:"batchNo" v:"required" dc:"批次号"` BatchQty int `json:"batchQty" v:"required|min:1" dc:"批次数量"` AvailableQty int `json:"availableQty" v:"required|min:1" dc:"可用数量"` Metadata []map[string]interface{} `json:"metadata" dc:"元数据"` Status stock.BatchStatus `json:"status" dc:"状态"` ProductionDate *gtime.Time `json:"productionDate" dc:"生产日期(格式:2006-01-02)"` ExpiryDate *gtime.Time `json:"expiryDate" dc:"过期日期(格式:2006-01-02)"` ExpiryWarningDate *gtime.Time `json:"expiryWarningDate" dc:"临期预警时间(格式:2006-01-02)"` } // CreateBatchRes 创建批次响应 type CreateBatchRes struct { Id *bson.ObjectID `json:"id"` // 批次ID } // UpdateBatchReq 更新批次请求 type UpdateBatchReq struct { g.Meta `path:"/updateBatch" method:"put" tags:"库存批次管理" summary:"更新批次" dc:"更新批次信息"` Id int64 `json:"id" v:"required" dc:"批次ID"` BatchQty int `json:"batchQty" v:"required|min:1" dc:"批次数量"` AvailableQty int `json:"availableQty" v:"required|min:1" dc:"可用数量"` } // DeleteBatchReq 删除批次请求 type DeleteBatchReq struct { g.Meta `path:"/deleteBatch" method:"delete" tags:"库存批次管理" summary:"删除批次" dc:"删除批次"` Id *bson.ObjectID `json:"id" v:"required" dc:"批次ID"` } // GetBatchReq 获取批次详情请求 type GetBatchReq struct { g.Meta `path:"/getBatch" method:"get" tags:"库存批次管理" summary:"获取批次详情" dc:"获取批次详情"` Id *bson.ObjectID `json:"id" v:"required" dc:"批次ID"` } // GetBatchRes 获取批次详情响应 type GetBatchRes struct { Id *bson.ObjectID `json:"id"` AssetId *bson.ObjectID `json:"assetId"` AssetSkuId *bson.ObjectID `json:"assetSkuId"` BatchNo string `json:"batchNo"` BatchQty int `json:"batchQty"` AvailableQty int `json:"availableQty"` Metadata []map[string]interface{} `json:"metadata"` Status stock.BatchStatus `json:"status"` ProductionDate *gtime.Time `json:"productionDate"` ExpiryDate *gtime.Time `json:"expiryDate"` ExpiryWarningDate *gtime.Time `json:"expiryWarningDate"` } // ListBatchReq 获取批次列表请求 type ListBatchReq struct { g.Meta `path:"/listBatches" method:"get" tags:"库存批次管理" summary:"获取批次列表" dc:"分页查询批次列表"` *beans.Page OrderBy []beans.OrderBy `json:"orderBy" dc:"排序规则"` AssetId *bson.ObjectID `json:"assetId" dc:"资产ID"` AssetSkuId *bson.ObjectID `json:"assetSkuId" dc:"SKU ID"` } // ListBatchRes 获取批次列表响应 type ListBatchRes struct { List []GetBatchRes `json:"list"` Total int64 `json:"total"` }