package dto import ( knapsackConsts "shop-user-trade/consts/knapsack" "shop-user-trade/model/config" "gitea.redpowerfuture.com/red-future/common/beans" "github.com/gogf/gf/v2/frame/g" ) // CreateKnapsackReq 创建背包项请求 type CreateKnapsackReq struct { g.Meta `path:"/createKnapsack" method:"post" tags:"背包管理" summary:"创建背包项" dc:"创建新的背包项"` UserID int64 `json:"userId" v:"required" dc:"用户ID"` AssetID int64 `json:"assetId" v:"required" dc:"资产ID"` AssetName string `json:"assetName" v:"required" dc:"资产名称"` SkuID int64 `json:"skuId,omitempty" dc:"SKU ID"` SkuName string `json:"skuName,omitempty" dc:"SKU名称"` SpecValues map[string]interface{} `json:"specValues,omitempty" dc:"规格值"` ImageURL string `json:"imageUrl" dc:"资产图片URL"` Type knapsackConsts.KnapsackAssetType `json:"type" v:"required" dc:"资产类型"` StockDetailID int64 `json:"stockDetailId,omitempty" dc:"库存明细ID(明细模式)"` BatchID int64 `json:"batchId,omitempty" dc:"批次ID(批次模式)"` BatchNo string `json:"batchNo,omitempty" dc:"批次号(批次模式)"` StockMode int `json:"stockMode" v:"required" dc:"库存管理模式:1-明细模式,2-批次模式"` ExpireAt *int64 `json:"expireAt,omitempty" dc:"过期时间(时间戳)"` PhysicalAssetConfig *config.PhysicalKnapsackConfig `json:"physicalAssetConfig,omitempty" dc:"实物资产配置"` ServiceAssetConfig *config.ServiceKnapsackConfig `json:"serviceAssetConfig,omitempty" dc:"服务资产配置"` VirtualAssetConfig *config.VirtualKnapsackConfig `json:"virtualAssetConfig,omitempty" dc:"虚拟资产配置"` } // GetKnapsackReq 获取背包项请求 type GetKnapsackReq struct { g.Meta `path:"/getKnapsack" method:"get" tags:"背包管理" summary:"获取背包项" dc:"获取背包项详情"` Id int64 `json:"id" v:"required" dc:"背包项ID"` } // UpdateKnapsackReq 更新背包项请求(内部使用) type UpdateKnapsackReq struct { Id int64 `json:"id" v:"required" dc:"背包项ID"` Status *knapsackConsts.KnapsackStatus `json:"status,omitempty" dc:"状态"` UsedAt *int64 `json:"usedAt,omitempty" dc:"使用时间"` Updater string `json:"updater,omitempty" dc:"更新者"` } // DeleteKnapsackReq 删除背包项请求 type DeleteKnapsackReq struct { g.Meta `path:"/deleteKnapsack" method:"delete" tags:"背包管理" summary:"删除背包项" dc:"删除背包项"` Id int64 `json:"id" v:"required" dc:"背包项ID"` } // ListKnapsackReq 获取背包列表请求 type ListKnapsackReq struct { g.Meta `path:"/listKnapsack" method:"get" tags:"背包管理" summary:"获取背包列表" dc:"分页查询背包列表,支持多条件筛选"` *beans.Page UserID int64 `json:"userId,omitempty" dc:"用户ID"` Status *int `json:"status,omitempty" dc:"状态"` Type string `json:"type,omitempty" dc:"资产类型"` Keyword string `json:"keyword,omitempty" dc:"关键词搜索"` } // UseKnapsackReq 使用背包项请求 type UseKnapsackReq struct { g.Meta `path:"/useKnapsack" method:"post" tags:"背包管理" summary:"使用背包项" dc:"手动使用背包中的物品"` ID int64 `json:"id" v:"required" dc:"背包项ID"` OperatorID int64 `json:"operatorId" v:"required" dc:"操作者ID"` OperatorName string `json:"operatorName" v:"required" dc:"操作者名称"` Reason string `json:"reason,omitempty" dc:"使用原因"` } // ListToMarketReq 上架背包项请求 type ListToMarketReq struct { g.Meta `path:"/listToMarket" method:"post" tags:"背包管理" summary:"上架到市场" dc:"将背包项上架到市场"` ID int64 `json:"id" v:"required" dc:"背包项ID"` OperatorID int64 `json:"operatorId" v:"required" dc:"操作者ID"` OperatorName string `json:"operatorName" v:"required" dc:"操作者名称"` } // UnlistKnapsackReq 下架背包项请求 type UnlistKnapsackReq struct { g.Meta `path:"/unlistKnapsack" method:"post" tags:"背包管理" summary:"从市场下架" dc:"将背包项从市场下架"` ID int64 `json:"id" v:"required" dc:"背包项ID"` OperatorID int64 `json:"operatorId" v:"required" dc:"操作者ID"` OperatorName string `json:"operatorName" v:"required" dc:"操作者名称"` } // VerifyKnapsackReq 核销背包项请求 type VerifyKnapsackReq struct { g.Meta `path:"/verifyKnapsack" method:"post" tags:"背包管理" summary:"核销背包项" dc:"核销背包中的物品"` ID int64 `json:"id" v:"required" dc:"背包项ID"` OperatorID int64 `json:"operatorId" v:"required" dc:"操作者ID"` OperatorName string `json:"operatorName" v:"required" dc:"操作者名称"` VerifyLocation string `json:"verifyLocation,omitempty" dc:"核销位置"` VerifyDevice string `json:"verifyDevice,omitempty" dc:"核销设备"` } // GenerateQRCodeReq 生成二维码请求 type GenerateQRCodeReq struct { g.Meta `path:"/generateQRCode" method:"post" tags:"背包管理" summary:"生成核销二维码" dc:"生成用于核销的二维码"` ID int64 `json:"id" v:"required" dc:"背包项ID"` ExpireDuration int64 `json:"expireDuration" v:"required" dc:"过期时长(秒)"` } // ========== 响应 ========== // CreateKnapsackRes 创建背包项响应 type CreateKnapsackRes struct { ID int64 `json:"id" dc:"背包项ID"` } // GetKnapsackRes 获取背包项响应 type GetKnapsackRes struct { *KnapsackItem } // ListKnapsackRes 获取背包列表响应 type ListKnapsackRes struct { List []*KnapsackItem `json:"list" dc:"背包列表"` Total int `json:"total" dc:"总数"` } // UseKnapsackRes 使用背包项响应 type UseKnapsackRes struct { Success bool `json:"success"` Message string `json:"message"` } // ListToMarketRes 上架背包项响应 type ListToMarketRes struct { Success bool `json:"success"` Message string `json:"message"` } // UnlistKnapsackRes 下架背包项响应 type UnlistKnapsackRes struct { Success bool `json:"success"` Message string `json:"message"` } // VerifyKnapsackRes 核销背包项响应 type VerifyKnapsackRes struct { Success bool `json:"success"` Message string `json:"message"` } // GenerateQRCodeRes 生成二维码响应 type GenerateQRCodeRes struct { QRCode string `json:"qrCode,omitempty"` VerifyCode string `json:"verifyCode,omitempty"` } // KnapsackItem 背包项视图 type KnapsackItem struct { ID int64 `json:"id" dc:"背包项ID"` UserID int64 `json:"userId" dc:"用户ID"` AssetID int64 `json:"assetId" dc:"资产ID"` AssetName string `json:"assetName" dc:"资产名称"` SkuID int64 `json:"skuId,omitempty" dc:"SKU ID"` SkuName string `json:"skuName,omitempty" dc:"SKU名称"` ImageURL string `json:"imageUrl" dc:"资产图片URL"` Type knapsackConsts.KnapsackAssetType `json:"type" dc:"资产类型"` Status knapsackConsts.KnapsackStatus `json:"status" dc:"状态"` ExpireAt *int64 `json:"expireAt,omitempty" dc:"过期时间"` // 库存相关字段 StockDetailID int64 `json:"stockDetailId,omitempty" dc:"库存明细ID"` BatchID int64 `json:"batchId,omitempty" dc:"批次ID"` BatchNo string `json:"batchNo,omitempty" dc:"批次号"` StockMode int `json:"stockMode" dc:"库存管理模式"` CreatedAt string `json:"createdAt" dc:"创建时间"` UpdatedAt string `json:"updatedAt" dc:"更新时间"` }