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 {
	AppCode       string
	UserID        int64
	ResourceID    int64
	EntitlementID string
}

type UnequipUserResourceCommand struct {
	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
}
