Files
assets/model/dto/stock/stock_batch_dto.go

91 lines
3.7 KiB
Go
Raw Permalink Normal View History

2026-03-18 10:18:03 +08:00
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"`
2026-03-18 10:18:03 +08:00
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:"可用数量"`
2026-03-18 10:18:03 +08:00
}
// 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"`
}