2026-06-06 13:50:46 +08:00

121 lines
2.9 KiB
Go

package roomturnoverreward
const (
TierStatusActive = "active"
TierStatusInactive = "inactive"
SettlementStatusPending = "pending"
SettlementStatusGranted = "granted"
SettlementStatusFailed = "failed"
EventStatusConsumed = "consumed"
EventStatusDuplicate = "duplicate"
EventStatusSkipped = "skipped"
)
// Tier 是后台配置的房间流水奖励档位,结算只发命中的最高有效档。
type Tier struct {
TierID int64
TierCode string
TierName string
ThresholdCoinSpent int64
RewardCoinAmount int64
Status string
SortOrder int32
CreatedAtMS int64
UpdatedAtMS int64
}
// Config 是当前 App 的房间流水奖励配置。
type Config struct {
AppCode string
Enabled bool
Tiers []Tier
UpdatedByAdminID int64
CreatedAtMS int64
UpdatedAtMS int64
}
// Progress 是单房间单 UTC 周期的金币流水聚合。
type Progress struct {
AppCode string
RoomID string
PeriodStartMS int64
PeriodEndMS int64
CoinSpent int64
LastEventAtMS int64
CreatedAtMS int64
UpdatedAtMS int64
}
// RoomGiftEvent 是 room-service RoomGiftSent 事实映射后的最小聚合输入。
type RoomGiftEvent struct {
EventID string
EventType string
AppCode string
RoomID string
CoinSpent int64
OccurredAtMS int64
}
// EventResult 表达房间礼物事件是否参与流水聚合。
type EventResult struct {
EventID string
Status string
}
// Settlement 是某个房间单个 UTC 周期的奖励发放事实。
type Settlement struct {
SettlementID string
AppCode string
RoomID string
OwnerUserID int64
PeriodStartMS int64
PeriodEndMS int64
CoinSpent int64
TierID int64
TierCode string
ThresholdCoinSpent int64
RewardCoinAmount int64
Status string
WalletCommandID string
WalletTransactionID string
FailureReason string
SettledAtMS int64
CreatedAtMS int64
UpdatedAtMS int64
}
// StatusResult 是 H5 查询当前用户房间流水奖励活动时的展示投影。
type StatusResult struct {
Config Config
RoomID string
OwnerUserID int64
PeriodStartMS int64
PeriodEndMS int64
CurrentCoinSpent int64
ExpectedRewardCoinAmount int64
MatchedTier Tier
LatestSettlement Settlement
ServerTimeMS int64
}
// SettlementQuery 是后台结算记录分页筛选条件。
type SettlementQuery struct {
Status string
RoomID string
OwnerUserID int64
PeriodStartMS int64
Page int32
PageSize int32
}
// BatchResult 汇总 cron 一次处理的 settlement 创建和发币结果。
type BatchResult struct {
ClaimedCount int32
ProcessedCount int32
SuccessCount int32
FailureCount int32
HasMore bool
}