Files
assets/model/dto/stock/private_stock_dto.go
2026-03-18 10:18:03 +08:00

138 lines
7.9 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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"`
}