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

138 lines
7.9 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"
)
// CreatePrivateStockReq 创建实物库存批次请求
type CreatePrivateStockReq struct {
g.Meta `path:"/createPrivateStock" method:"post" tags:"实物库存批次管理" summary:"创建实物库存批次" dc:"创建新的实物库存批次"`
WarehouseId *bson.ObjectID `json:"warehouseId" v:"required" dc:"仓库ID"`
ZoneId *bson.ObjectID `json:"zoneId" dc:"库区ID"`
LocationId *bson.ObjectID `json:"locationId" dc:"库位ID"`
PrivateSkuID *bson.ObjectID `json:"privateSkuId" 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:0" dc:"可用数量"`
BatchStatus *stock.BatchStatus `json:"batchStatus" dc:"批次状态"`
StockStatus *stock.StockStatus `json:"stockStatus" dc:"库存状态"`
SupplierID *bson.ObjectID `json:"supplierId" dc:"供应商ID"`
SupportsRecycle bool `json:"supportsRecycle" dc:"是否支持回收"`
ProductionDate *gtime.Time `json:"productionDate" dc:"生产日期"`
ExpiryDate *gtime.Time `json:"expiryDate" dc:"过期日期"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate" dc:"临期预警时间"`
PrivateCategoryPath string `json:"privateCategoryPath" dc:"私域分类路径"`
StockType stock.StockLocationType `json:"stockType" dc:"库存类型"`
}
// CreatePrivateStockRes 创建实物库存批次响应
type CreatePrivateStockRes struct {
Id *bson.ObjectID `json:"id"`
}
// UpdatePrivateStockReq 更新实物库存批次请求
type UpdatePrivateStockReq struct {
g.Meta `path:"/updatePrivateStock" method:"put" tags:"实物库存批次管理" summary:"更新实物库存批次" dc:"更新实物库存批次信息"`
Id *bson.ObjectID `json:"id" v:"required" dc:"实物库存批次ID"`
WarehouseId *bson.ObjectID `json:"warehouseId" dc:"仓库ID"`
ZoneId *bson.ObjectID `json:"zoneId" dc:"库区ID"`
LocationId *bson.ObjectID `json:"locationId" dc:"库位ID"`
PrivateSkuID *bson.ObjectID `json:"privateSkuId" dc:"私域SKU ID"`
BatchNo string `json:"batchNo" dc:"批次号"`
BatchQty int `json:"batchQty" dc:"批次总数量"`
AvailableQty int `json:"availableQty" dc:"可用数量"`
BatchStatus *stock.BatchStatus `json:"batchStatus" dc:"批次状态"`
StockStatus *stock.StockStatus `json:"stockStatus" dc:"库存状态"`
SupplierID *bson.ObjectID `json:"supplierId" dc:"供应商ID"`
SupportsRecycle *bool `json:"supportsRecycle" dc:"是否支持回收"`
ProductionDate *gtime.Time `json:"productionDate" dc:"生产日期"`
ExpiryDate *gtime.Time `json:"expiryDate" dc:"过期日期"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate" dc:"临期预警时间"`
PrivateCategoryPath string `json:"privateCategoryPath" dc:"私域分类路径"`
StockType stock.StockLocationType `json:"stockType" dc:"库存类型"`
}
// DeletePrivateStockReq 删除私域库存请求
type DeletePrivateStockReq struct {
g.Meta `path:"/deletePrivateStock" method:"delete" tags:"私域库存管理" summary:"删除私域库存" dc:"删除私域库存"`
Id *bson.ObjectID `json:"id" v:"required" dc:"私域库存ID"`
}
// GetPrivateStockReq 获取私域库存详情请求
type GetPrivateStockReq struct {
g.Meta `path:"/getPrivateStock" method:"get" tags:"私域库存管理" summary:"获取私域库存详情" dc:"获取私域库存详情"`
Id *bson.ObjectID `json:"id" v:"required" dc:"私域库存ID"`
}
// GetPrivateStockRes 获取私域库存详情响应
type GetPrivateStockRes struct {
Id *bson.ObjectID `json:"id"`
StockType stock.StockLocationType `json:"stockType"`
WarehouseId *bson.ObjectID `json:"warehouseId"`
WarehouseCode string `json:"warehouseCode"`
WarehouseName string `json:"warehouseName"`
ZoneId *bson.ObjectID `json:"zoneId"`
ZoneCode string `json:"zoneCode"`
ZoneName string `json:"zoneName"`
ZoneType stock.ZoneType `json:"zoneType"`
LocationId *bson.ObjectID `json:"locationId"`
LocationCode string `json:"locationCode"`
LocationName string `json:"locationName"`
LocationType stock.LocationType `json:"locationType"`
PrivateSkuID *bson.ObjectID `json:"privateSkuId"`
BatchNo string `json:"batchNo"`
BatchQty int `json:"batchQty"`
AvailableQty int `json:"availableQty"`
BatchStatus stock.BatchStatus `json:"batchStatus"`
OrderID *bson.ObjectID `json:"orderId"`
SupplierID *bson.ObjectID `json:"supplierId"`
SupportsRecycle bool `json:"supportsRecycle"`
ProductionDate *gtime.Time `json:"productionDate"`
ExpiryDate *gtime.Time `json:"expiryDate"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate"`
PrivateCategoryPath string `json:"privateCategoryPath"`
StockStatus stock.StockStatus `json:"stockStatus"`
LastMovedAt *gtime.Time `json:"lastMovedAt"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}
// ListPrivateStockReq 获取私域库存列表请求
type ListPrivateStockReq struct {
g.Meta `path:"/listPrivateStocks" method:"get" tags:"私域库存管理" summary:"获取私域库存列表" dc:"分页查询私域库存列表"`
*beans.Page
OrderBy []beans.OrderBy `json:"orderBy" dc:"排序规则"`
WarehouseId *bson.ObjectID `json:"warehouseId" dc:"仓库ID"`
ZoneId *bson.ObjectID `json:"zoneId" dc:"库区ID"`
LocationId *bson.ObjectID `json:"locationId" dc:"库位ID"`
PrivateSkuID *bson.ObjectID `json:"privateSkuId" dc:"私域SKU ID"`
BatchStatus *stock.BatchStatus `json:"batchStatus" dc:"批次状态"`
StockStatus *stock.StockStatus `json:"stockStatus" dc:"库存状态"`
SupplierID *bson.ObjectID `json:"supplierId" dc:"供应商ID"`
PrivateCategoryPath string `json:"privateCategoryPath" dc:"私域分类路径"`
StockType stock.StockLocationType `json:"stockType" dc:"库存类型"`
}
// ListPrivateStockRes 获取私域库存列表响应
type ListPrivateStockRes struct {
List []GetPrivateStockRes `json:"list"`
Total int64 `json:"total"`
}
// OutboundPrivateStockReq 实物库存批次出库请求
type OutboundPrivateStockReq struct {
g.Meta `path:"/outboundPrivateStock" method:"post" tags:"实物库存批次管理" summary:"实物库存批次出库" dc:"实物库存批次出库操作"`
StockId *bson.ObjectID `json:"stockId" v:"required" dc:"实物库存批次ID"`
OutboundQty int `json:"outboundQty" v:"required|min:1" dc:"出库数量"`
StockType stock.StockLocationType `json:"stockType" v:"required" dc:"库存类型必须为PrivateStock"`
}