403 lines
11 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package growth
const (
TrackWealth = "wealth"
TrackGame = "game"
TrackCharm = "charm"
StatusActive = "active"
StatusDisabled = "disabled"
RewardStatusPending = "pending"
RewardStatusRunning = "running"
RewardStatusGranted = "granted"
RewardStatusFailed = "failed"
RewardStatusCanceled = "canceled"
RewardOriginOrganic = "organic"
RewardOriginTemporary = "temporary"
RevokeStatusNone = "none"
RevokeStatusPending = "pending"
RevokeStatusRunning = "running"
RevokeStatusRevoked = "revoked"
RevokeStatusFailed = "failed"
RevokeStatusSkipped = "skipped"
TemporaryLevelStatusActive = "active"
TemporaryLevelStatusSuperseded = "superseded"
TemporaryLevelStatusExpired = "expired"
NoticeStatusPending = "pending"
NoticeStatusSent = "sent"
NoticeStatusSkipped = "skipped"
NoticeStatusFailed = "failed"
RewardSourceLevel = "level"
RewardSourceTier = "tier"
EventStatusConsumed = "consumed"
EventStatusDuplicate = "duplicate"
MetricGiftSpendCoin = "gift_spend_coin"
MetricReceivedGiftValue = "received_gift_value"
MetricGameSpendCoin = "game_spend_coin"
GrantSourceGrowthLevel = "growth_level"
)
// Track 是等级体系的一条成长轨道;默认有 wealth/game/charm 三条。
type Track struct {
AppCode string
Track string
Name string
Status string
SortOrder int32
DisplayConfigJSON string
CreatedAtMS int64
UpdatedAtMS int64
}
// Rule 是单个等级的阈值和可选奖励配置。
type Rule struct {
AppCode string
Track string
Level int32
RequiredValue int64
Name string
Status string
RewardResourceGroupID int64
SortOrder int32
DisplayConfigJSON string
CreatedByAdminID int64
UpdatedByAdminID int64
CreatedAtMS int64
UpdatedAtMS int64
}
// Tier 是等级段展示配置;等级段奖励通常用于永久头像框和徽章。
type Tier struct {
AppCode string
TierID int64
Track string
MinLevel int32
MaxLevel int32
Name string
DisplayAvatarFrameResourceID int64
DisplayBadgeResourceID int64
RewardResourceGroupID int64
Status string
DisplayConfigJSON string
CreatedByAdminID int64
UpdatedByAdminID int64
CreatedAtMS int64
UpdatedAtMS int64
}
// Account 是用户在某条轨道上的累计值和当前等级。
type Account struct {
AppCode string
UserID int64
Track string
TotalValue int64
CurrentLevel int32
CurrentTierID int64
LevelUpdatedAtMS int64
TierUpdatedAtMS int64
Version int64
UpdatedAtMS int64
}
// TrackOverview 是 App 等级页展示的单轨道摘要。
type TrackOverview struct {
Track string
Name string
Level int32
TierID int64
TotalValue int64
CurrentLevelRequiredValue int64
NextLevel int32
NextLevelRequiredValue int64
DisplayAvatarFrameResourceID int64
DisplayBadgeResourceID int64
DisplayBadgeSourceLevel int32
RewardPendingCount int64
SortOrder int32
}
// LevelDisplayTrackProfile 是房间资料、资料卡这类轻量展示面读取的单轨道投影。
type LevelDisplayTrackProfile struct {
Track string
Level int32
TierID int64
AvatarFrameResourceID int64
BadgeResourceID int64
BadgeSourceLevel int32
UpdatedAtMS int64
}
// UserLevelDisplayProfile 固定携带 wealth/game/charm 三条轨道,避免展示层按数组顺序猜含义。
type UserLevelDisplayProfile struct {
UserID int64
Wealth LevelDisplayTrackProfile
Game LevelDisplayTrackProfile
Charm LevelDisplayTrackProfile
}
// LevelDisplayProfiles 是批量用户展示投影的只读快照。
type LevelDisplayProfiles struct {
Profiles []UserLevelDisplayProfile
ServerTimeMS int64
}
// RegistrationLevelBadgeGrant 是注册后按等级规则补发的 1 级等级徽章发放结果。
type RegistrationLevelBadgeGrant struct {
Track string
Level int32
ResourceID int64
GrantID string
}
type RegistrationLevelBadgeGrants struct {
Grants []RegistrationLevelBadgeGrant
ServerTimeMS int64
}
// TrackDetail 返回一个轨道的完整阈值、等级段和当前用户进度。
type TrackDetail struct {
Overview TrackOverview
Rules []Rule
Tiers []Tier
ServerTimeMS int64
}
// Config 是后台等级配置页读取的完整配置快照;它不携带任何用户进度。
type Config struct {
Tracks []Track
Rules []Rule
Tiers []Tier
ServerTimeMS int64
}
// ConfigQuery 约束后台等级配置读取范围status 为空时返回全部状态。
type ConfigQuery struct {
Track string
Status string
}
// Overview 是 App 我的等级总览。
type Overview struct {
Tracks []TrackOverview
ServerTimeMS int64
}
// ValueEvent 是事件 relay 投递给等级系统的幂等等级增量。
type ValueEvent struct {
EventID string
SourceEventID string
SourceService string
SourceEventType string
UserID int64
Track string
MetricType string
ValueDelta int64
OccurredAtMS int64
DimensionsJSON string
}
// EventResult 表达等级事件消费结果;重复事件也返回成功语义。
type EventResult struct {
EventID string
Status string
LevelChanged bool
PreviousLevel int32
NewLevel int32
RewardJobCount int64
}
// SetUserLevelCommand 描述经理中心直接设置用户等级的事实输入。
// TotalValue 不由调用方提交activity-service 会读取目标等级阈值后在事务内写入。
type SetUserLevelCommand struct {
CommandID string
UserID int64
Track string
Level int32
OperatorUserID int64
Reason string
}
// SetUserLevelResult 返回经理设置等级后的账户事实和补发奖励数量。
type SetUserLevelResult struct {
EventID string
Status string
Track string
PreviousLevel int32
NewLevel int32
TotalValue int64
RewardJobCount int64
ServerTimeMS int64
}
// TemporaryLevel 是真实成长账户之上的限时展示层。BaselineTotalValue 只做审计,
// 有效期经验始终按 value event 的 occurred_at_ms 落在 [StartedAtMS, ExpiresAtMS) 内聚合。
type TemporaryLevel struct {
AppCode string
TemporaryLevelID string
CommandID string
UserID int64
Track string
TargetLevel int32
TargetRequiredValue int64
BaselineTotalValue int64
StartedAtMS int64
ExpiresAtMS int64
Status string
Generation int32
OperatorAdminID int64
Reason string
FinalLevel int32
ActivationNoticeStatus string
ExpiryNoticeStatus string
AttemptCount int32
FailureReason string
CreatedAtMS int64
UpdatedAtMS int64
}
// TemporaryLevelAdjustment 是一次后台临时等级调整。wealth/charm 可在同一命令中各出现一次。
type TemporaryLevelAdjustment struct {
Track string
Level int32
DurationDays int32
}
// AdjustTemporaryLevelsCommand 以 CommandID 为整批幂等键RequestHash 用于拒绝同键不同载荷。
type AdjustTemporaryLevelsCommand struct {
CommandID string
RequestHash string
UserID int64
Adjustments []TemporaryLevelAdjustment
OperatorAdminID int64
Reason string
}
// AdminTrackProfile 同时返回真实账户和当前展示层,后台无需从临时目标反推真实经验。
type AdminTrackProfile struct {
Track string
RealLevel int32
RealTotalValue int64
DisplayLevel int32
DisplayValue int64
TemporaryLevelID string
TemporaryTargetLevel int32
StartedAtMS int64
ExpiresAtMS int64
}
type AdminUserLevelProfile struct {
UserID int64
Tracks []AdminTrackProfile
ServerTimeMS int64
}
type AdminLevelProfiles struct {
Profiles []AdminUserLevelProfile
ServerTimeMS int64
}
// TemporaryLevelWork 是 cron 认领后的副作用快照。过期状态、奖励永久化/撤回准备均已在认领事务内提交。
type TemporaryLevelWork struct {
TemporaryLevel
SendActivationNotice bool
SendExpiryNotice bool
}
// RewardWalletGrant 保存一个奖励任务下的每次钱包发放。资源组、头像框和短徽章必须分别留痕。
type RewardWalletGrant struct {
RewardJobID string
GrantKind string
WalletGrantID string
CreatedAtMS int64
}
// RewardRevocation 是一条可独立幂等重试的钱包 grant 撤回任务。
type RewardRevocation struct {
RewardJobID string
WalletGrantID string
TemporaryLevelID string
UserID int64
Track string
AttemptCount int32
}
// RewardJob 是等级奖励资源组的异步发放任务。
type RewardJob struct {
AppCode string
RewardJobID string
UserID int64
Track string
RewardSourceType string
RewardSourceID string
ResourceGroupID int64
WalletCommandID string
WalletGrantID string
RewardOrigin string
TemporaryLevelID string
GrantGeneration int32
RewardLevel int32
Permanent bool
TemporaryExpiresAtMS int64
RevokeStatus string
Status string
AttemptCount int32
FailureReason string
CreatedAtMS int64
UpdatedAtMS int64
}
// RewardQuery 是用户奖励记录分页筛选。
type RewardQuery struct {
UserID int64
Track string
Status string
Page int32
PageSize int32
}
// TrackCommand 是后台创建或更新轨道配置的命令。
type TrackCommand struct {
Track string
Name string
Status string
SortOrder int32
DisplayConfigJSON string
}
// RuleCommand 是后台创建或更新等级规则的命令。
type RuleCommand struct {
Track string
Level int32
RequiredValue int64
Name string
Status string
RewardResourceGroupID int64
SortOrder int32
DisplayConfigJSON string
OperatorAdminID int64
}
// TierCommand 是后台创建或更新等级段配置的命令。
type TierCommand struct {
TierID int64
Track string
MinLevel int32
MaxLevel int32
Name string
DisplayAvatarFrameResourceID int64
DisplayBadgeResourceID int64
RewardResourceGroupID int64
Status string
DisplayConfigJSON string
OperatorAdminID int64
}