package resource

// BadgeGrantOutbox is a wallet resource grant event relayed to activity-service badge display projection.
type BadgeGrantOutbox struct {
	AppCode       string
	EventID       string
	EventType     string
	CommandID     string
	UserID        int64
	GrantID       string
	GrantSource   string
	PayloadJSON   string
	Status        string
	AttemptCount  int32
	FailureReason string
	CreatedAtMS   int64
	UpdatedAtMS   int64
	Items         []BadgeGrantItem
}

// BadgeGrantItem is the badge subset of a resource grant item.
type BadgeGrantItem struct {
	ResourceID           int64  `json:"resource_id"`
	ResourceCode         string `json:"resource_code"`
	ResourceType         string `json:"resource_type"`
	Name                 string `json:"name"`
	EntitlementID        string `json:"entitlement_id"`
	ResourceSnapshotJSON string `json:"resource_snapshot_json"`
	MetadataJSON         string `json:"metadata_json"`
}
