package resource type UserResourceEntitlement struct { AppCode string EntitlementID string UserID int64 ResourceID int64 Resource Resource Status string Quantity int64 RemainingQuantity int64 EffectiveAtMS int64 ExpiresAtMS int64 SourceGrantID string CreatedAtMS int64 UpdatedAtMS int64 Equipped bool } type ListUserResourcesQuery struct { AppCode string UserID int64 ResourceType string ActiveOnly bool } type EquipUserResourceCommand struct { // RequestID 在通用背包命中 VIP 体验卡时作为专用状态机的 outbox 幂等事件键; // 普通装扮仍不把 request_id 当业务幂等键。 RequestID string AppCode string UserID int64 ResourceID int64 EntitlementID string } type UnequipUserResourceCommand struct { // RequestID 仅在 vip_trial_card 委托专用卸下流程时用于发布完整 VIP 状态变更事件。 RequestID string AppCode string UserID int64 ResourceType string } type UnequipUserResourceResult struct { ResourceType string Unequipped bool UpdatedAtMS int64 } type BatchGetUserEquippedResourcesQuery struct { AppCode string UserIDs []int64 ResourceTypes []string } type UserEquippedResources struct { UserID int64 Resources []UserResourceEntitlement }