87 lines
2.0 KiB
Go
87 lines
2.0 KiB
Go
package cpweeklyrank
|
|
|
|
const (
|
|
ActivityCode = "cp_weekly_rank"
|
|
|
|
SettlementStatusPending = "pending"
|
|
SettlementStatusRunning = "running"
|
|
SettlementStatusGranted = "granted"
|
|
SettlementStatusFailed = "failed"
|
|
|
|
GrantSourceCPWeeklyRank = "cp_weekly_rank"
|
|
)
|
|
|
|
// Reward maps one CP weekly rank to the resource group granted to both relationship users.
|
|
type Reward struct {
|
|
AppCode string
|
|
RankNo int32
|
|
ResourceGroupID int64
|
|
CreatedAtMS int64
|
|
UpdatedAtMS int64
|
|
}
|
|
|
|
// Config is the activity-service owned switch and reward definition for CP weekly rank.
|
|
type Config struct {
|
|
AppCode string
|
|
ActivityCode string
|
|
Enabled bool
|
|
RelationType string
|
|
TopCount int32
|
|
UpdatedByAdminID int64
|
|
CreatedAtMS int64
|
|
UpdatedAtMS int64
|
|
Rewards []Reward
|
|
}
|
|
|
|
// User is a user-service profile snapshot included in leaderboard reads.
|
|
type User struct {
|
|
UserID int64
|
|
DisplayUserID string
|
|
Username string
|
|
Avatar string
|
|
}
|
|
|
|
// Entry is one relationship score inside a concrete UTC week window.
|
|
type Entry struct {
|
|
Rank int64
|
|
RelationshipID string
|
|
RelationType string
|
|
Score int64
|
|
UserA User
|
|
UserB User
|
|
FormedAtMS int64
|
|
UpdatedAtMS int64
|
|
FirstScoredAtMS int64
|
|
LastScoredAtMS int64
|
|
}
|
|
|
|
// Settlement is one resource-group grant job; every winning relationship creates two rows, one for each user.
|
|
type Settlement struct {
|
|
AppCode string
|
|
SettlementID string
|
|
PeriodStartMS int64
|
|
PeriodEndMS int64
|
|
RankNo int32
|
|
RelationshipID string
|
|
UserID int64
|
|
Score int64
|
|
ResourceGroupID int64
|
|
WalletCommandID string
|
|
WalletGrantID string
|
|
Status string
|
|
FailureReason string
|
|
AttemptCount int32
|
|
CreatedAtMS int64
|
|
UpdatedAtMS int64
|
|
}
|
|
|
|
// Status is the H5 read model for current week leaderboard and configured rewards.
|
|
type Status struct {
|
|
Config Config
|
|
Entries []Entry
|
|
PreviousEntries []Entry
|
|
PeriodStartMS int64
|
|
PeriodEndMS int64
|
|
ServerTimeMS int64
|
|
}
|