package entity import ( "assets/consts/public" "assets/consts/stock" "gitea.com/red-future/common/beans" "github.com/gogf/gf/v2/os/gtime" "go.mongodb.org/mongo-driver/v2/bson" ) // StockDetails 库存实体,每一件商品都有独立ID,用于后期做区块链虚拟资产 type StockDetails struct { beans.MongoBaseDO `bson:",inline"` // 嵌入基础字段:Id, Creator, CreatedAt, Updater, UpdatedAt, TenantId, IsDeleted AssetId int64 `bson:"assetId" json:"assetId"` // 关联资产ID AssetSkuId int64 `bson:"assetSkuId" json:"assetSkuId"` // 关联资产SKU ID Status stock.StockStatus `bson:"status" json:"status"` // 库存状态 OrderId *bson.ObjectID `bson:"orderId" json:"orderId"` // 关联订单ID(如果有) LockExpire *gtime.Time `bson:"lockExpire" json:"lockExpire"` // 锁定过期时间 Metadata []map[string]interface{} `bson:"metadata" json:"metadata"` // 其他元数据 TokenId string `bson:"tokenId" json:"tokenId"` // 区块链TokenID(如果有) // 渠道分配信息 AssignedChannel string `bson:"assignedChannel" json:"assignedChannel"` // 分配的销售渠道 ChannelSKU string `bson:"channelSku" json:"channelSku"` // 渠道商品SKU ChannelMetadata map[string]interface{} `bson:"channelMetadata" json:"channelMetadata"` // 渠道专属数据 AllocatedAt *gtime.Time `bson:"allocatedAt" json:"allocatedAt"` // 分配时间 CategoryPath string `bson:"categoryPath" json:"categoryPath"` // 分类路径 } // CollectionName 库存集合名称 func (StockDetails) CollectionName() string { return public.StockDetailsCollection }