215 lines
14 KiB
Go
215 lines
14 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
// VoiceRoomRocketConfig 保存语音房火箭系统级配置。
|
|
type VoiceRoomRocketConfig struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_voice_room_rocket_config"`
|
|
Enabled bool `gorm:"column:enabled"`
|
|
Timezone string `gorm:"column:timezone;size:64"`
|
|
MaxLevel int `gorm:"column:max_level"`
|
|
RankingTopLimit int `gorm:"column:ranking_top_limit"`
|
|
RewardRecordKeepDays int `gorm:"column:reward_record_keep_days"`
|
|
BroadcastDurationSeconds int `gorm:"column:broadcast_duration_seconds"`
|
|
InRoomRewardDelaySeconds int `gorm:"column:in_room_reward_delay_seconds"`
|
|
EnergyRuleJSON string `gorm:"column:energy_rule_json;type:json"`
|
|
RuleText string `gorm:"column:rule_text;type:json"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (VoiceRoomRocketConfig) TableName() string { return "voice_room_rocket_config" }
|
|
|
|
// VoiceRoomRocketLevelConfig 保存每级能量、资源和抖动阈值配置。
|
|
type VoiceRoomRocketLevelConfig struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_voice_room_rocket_level,priority:1"`
|
|
Level int `gorm:"column:level;uniqueIndex:uk_voice_room_rocket_level,priority:2"`
|
|
NeedEnergy int64 `gorm:"column:need_energy"`
|
|
ShakeThresholdPercent string `gorm:"column:shake_threshold_percent;type:decimal(8,4)"`
|
|
PreviewRocketURL string `gorm:"column:preview_rocket_url;size:512"`
|
|
RocketIconURL string `gorm:"column:rocket_icon_url;size:512"`
|
|
RocketAnimationURL string `gorm:"column:rocket_animation_url;size:512"`
|
|
ProgressBarURL string `gorm:"column:progress_bar_url;size:512"`
|
|
Enabled bool `gorm:"column:enabled"`
|
|
Sort int `gorm:"column:sort"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (VoiceRoomRocketLevelConfig) TableName() string { return "voice_room_rocket_level_config" }
|
|
|
|
// VoiceRoomRocketRewardConfig 保存 Top1、引爆、在房间三类奖励配置。
|
|
type VoiceRoomRocketRewardConfig struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_voice_room_rocket_reward_scene,priority:1"`
|
|
Level int `gorm:"column:level;index:idx_voice_room_rocket_reward_scene,priority:2"`
|
|
RewardScene string `gorm:"column:reward_scene;size:32;index:idx_voice_room_rocket_reward_scene,priority:3"`
|
|
RewardType string `gorm:"column:reward_type;size:32"`
|
|
RewardItemID *int64 `gorm:"column:reward_item_id"`
|
|
RewardName string `gorm:"column:reward_name;size:128"`
|
|
RewardCover string `gorm:"column:reward_cover;size:512"`
|
|
RewardAmount int64 `gorm:"column:reward_amount"`
|
|
ExpireDays *int `gorm:"column:expire_days"`
|
|
RewardCopies int `gorm:"column:reward_copies;default:1"`
|
|
Weight int `gorm:"column:weight"`
|
|
Sort int `gorm:"column:sort"`
|
|
Enabled bool `gorm:"column:enabled;index:idx_voice_room_rocket_reward_scene,priority:4"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (VoiceRoomRocketRewardConfig) TableName() string { return "voice_room_rocket_reward_config" }
|
|
|
|
// VoiceRoomRocketStatus 保存房间当天当前火箭状态。
|
|
type VoiceRoomRocketStatus struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_voice_room_rocket_status,priority:1"`
|
|
RoomID int64 `gorm:"column:room_id;uniqueIndex:uk_voice_room_rocket_status,priority:2"`
|
|
DayKey string `gorm:"column:day_key;size:16;uniqueIndex:uk_voice_room_rocket_status,priority:3"`
|
|
RoundNo int `gorm:"column:round_no"`
|
|
CurrentLevel int `gorm:"column:current_level"`
|
|
CurrentEnergy int64 `gorm:"column:current_energy"`
|
|
NeedEnergy int64 `gorm:"column:need_energy"`
|
|
Status string `gorm:"column:status;size:32"`
|
|
LevelStartTime time.Time `gorm:"column:level_start_time"`
|
|
LastEventTime *time.Time `gorm:"column:last_event_time"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (VoiceRoomRocketStatus) TableName() string { return "voice_room_rocket_status" }
|
|
|
|
// VoiceRoomRocketLevelRound 保存每轮每级的充能/发射快照。
|
|
type VoiceRoomRocketLevelRound struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_voice_room_rocket_level_round,priority:1;index:idx_voice_room_rocket_level_round_room,priority:1"`
|
|
RoomID int64 `gorm:"column:room_id;uniqueIndex:uk_voice_room_rocket_level_round,priority:2;index:idx_voice_room_rocket_level_round_room,priority:2"`
|
|
DayKey string `gorm:"column:day_key;size:16;uniqueIndex:uk_voice_room_rocket_level_round,priority:3;index:idx_voice_room_rocket_level_round_room,priority:3"`
|
|
RoundNo int `gorm:"column:round_no;uniqueIndex:uk_voice_room_rocket_level_round,priority:4;index:idx_voice_room_rocket_level_round_room,priority:4"`
|
|
Level int `gorm:"column:level;uniqueIndex:uk_voice_room_rocket_level_round,priority:5"`
|
|
NeedEnergy int64 `gorm:"column:need_energy"`
|
|
FinalEnergy int64 `gorm:"column:final_energy"`
|
|
Status string `gorm:"column:status;size:32"`
|
|
Top1UserID *int64 `gorm:"column:top1_user_id"`
|
|
IgniteUserID *int64 `gorm:"column:ignite_user_id"`
|
|
ReachTime *time.Time `gorm:"column:reach_time"`
|
|
LaunchTime *time.Time `gorm:"column:launch_time"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (VoiceRoomRocketLevelRound) TableName() string { return "voice_room_rocket_level_round" }
|
|
|
|
// VoiceRoomRocketContribution 保存本轮本级用户贡献榜。
|
|
type VoiceRoomRocketContribution struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_voice_room_rocket_contribution_user,priority:1;index:idx_voice_room_rocket_contribution_rank,priority:1"`
|
|
RoomID int64 `gorm:"column:room_id;uniqueIndex:uk_voice_room_rocket_contribution_user,priority:2;index:idx_voice_room_rocket_contribution_rank,priority:2"`
|
|
DayKey string `gorm:"column:day_key;size:16;uniqueIndex:uk_voice_room_rocket_contribution_user,priority:3;index:idx_voice_room_rocket_contribution_rank,priority:3"`
|
|
RoundNo int `gorm:"column:round_no;uniqueIndex:uk_voice_room_rocket_contribution_user,priority:4;index:idx_voice_room_rocket_contribution_rank,priority:4"`
|
|
Level int `gorm:"column:level;uniqueIndex:uk_voice_room_rocket_contribution_user,priority:5;index:idx_voice_room_rocket_contribution_rank,priority:5"`
|
|
UserID int64 `gorm:"column:user_id;uniqueIndex:uk_voice_room_rocket_contribution_user,priority:6"`
|
|
ScoreEnergy int64 `gorm:"column:score_energy;index:idx_voice_room_rocket_contribution_rank,priority:6"`
|
|
GiftCount int `gorm:"column:gift_count"`
|
|
FirstContributeTime time.Time `gorm:"column:first_contribute_time"`
|
|
LastContributeTime time.Time `gorm:"column:last_contribute_time;index:idx_voice_room_rocket_contribution_rank,priority:7"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (VoiceRoomRocketContribution) TableName() string { return "voice_room_rocket_contribution" }
|
|
|
|
// VoiceRoomRocketGiftEventLog 保存送礼事件幂等和处理日志。
|
|
type VoiceRoomRocketGiftEventLog struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_voice_room_rocket_event_room,priority:1"`
|
|
TrackID string `gorm:"column:track_id;size:128;uniqueIndex:uk_voice_room_rocket_track"`
|
|
RoomID int64 `gorm:"column:room_id;index:idx_voice_room_rocket_event_room,priority:2"`
|
|
SendUserID int64 `gorm:"column:send_user_id"`
|
|
GiftID *int64 `gorm:"column:gift_id"`
|
|
GiftType string `gorm:"column:gift_type;size:32"`
|
|
GiftTab string `gorm:"column:gift_tab;size:64"`
|
|
RawEnergy int64 `gorm:"column:raw_energy"`
|
|
AcceptedEnergy int64 `gorm:"column:accepted_energy"`
|
|
DayKey string `gorm:"column:day_key;size:16;index:idx_voice_room_rocket_event_room,priority:3"`
|
|
RoundNo int `gorm:"column:round_no;index:idx_voice_room_rocket_event_room,priority:4"`
|
|
Level int `gorm:"column:level;index:idx_voice_room_rocket_event_room,priority:5"`
|
|
Status string `gorm:"column:status;size:32"`
|
|
RawPayload string `gorm:"column:raw_payload;type:mediumtext"`
|
|
ErrorMessage string `gorm:"column:error_message;size:1024"`
|
|
EventTime time.Time `gorm:"column:event_time"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (VoiceRoomRocketGiftEventLog) TableName() string { return "voice_room_rocket_gift_event_log" }
|
|
|
|
// VoiceRoomRocketLaunch 保存火箭每次发射记录。
|
|
type VoiceRoomRocketLaunch struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
LaunchNo string `gorm:"column:launch_no;size:64;uniqueIndex:uk_voice_room_rocket_launch_no"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_voice_room_rocket_launch_level,priority:1;index:idx_voice_room_rocket_launch_room,priority:1"`
|
|
RoomID int64 `gorm:"column:room_id;uniqueIndex:uk_voice_room_rocket_launch_level,priority:2;index:idx_voice_room_rocket_launch_room,priority:2"`
|
|
RoomAccount string `gorm:"column:room_account;size:64"`
|
|
DayKey string `gorm:"column:day_key;size:16;uniqueIndex:uk_voice_room_rocket_launch_level,priority:3"`
|
|
RoundNo int `gorm:"column:round_no;uniqueIndex:uk_voice_room_rocket_launch_level,priority:4"`
|
|
Level int `gorm:"column:level;uniqueIndex:uk_voice_room_rocket_launch_level,priority:5"`
|
|
FinalEnergy int64 `gorm:"column:final_energy"`
|
|
Top1UserID *int64 `gorm:"column:top1_user_id"`
|
|
IgniteUserID *int64 `gorm:"column:ignite_user_id"`
|
|
InRoomSnapshotStatus string `gorm:"column:in_room_snapshot_status;size:32"`
|
|
LaunchTime time.Time `gorm:"column:launch_time;index:idx_voice_room_rocket_launch_room,priority:3"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (VoiceRoomRocketLaunch) TableName() string { return "voice_room_rocket_launch" }
|
|
|
|
// VoiceRoomRocketRewardRecord 保存火箭奖励发放和弹窗状态。
|
|
type VoiceRoomRocketRewardRecord struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
LaunchID int64 `gorm:"column:launch_id;index:idx_voice_room_rocket_reward_launch,priority:1"`
|
|
LaunchNo string `gorm:"column:launch_no;size:64"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_voice_room_rocket_reward_user,priority:1"`
|
|
RoomID int64 `gorm:"column:room_id"`
|
|
DayKey string `gorm:"column:day_key;size:16"`
|
|
RoundNo int `gorm:"column:round_no"`
|
|
Level int `gorm:"column:level"`
|
|
UserID int64 `gorm:"column:user_id;index:idx_voice_room_rocket_reward_user,priority:2;index:idx_voice_room_rocket_reward_launch,priority:2"`
|
|
RewardScene string `gorm:"column:reward_scene;size:32"`
|
|
RewardConfigID int64 `gorm:"column:reward_config_id"`
|
|
RewardType string `gorm:"column:reward_type;size:32"`
|
|
RewardItemID *int64 `gorm:"column:reward_item_id"`
|
|
RewardName string `gorm:"column:reward_name;size:128"`
|
|
RewardCover string `gorm:"column:reward_cover;size:512"`
|
|
RewardAmount int64 `gorm:"column:reward_amount"`
|
|
ExpireDays *int `gorm:"column:expire_days"`
|
|
GrantEventID string `gorm:"column:grant_event_id;size:128;uniqueIndex:uk_voice_room_rocket_reward_event"`
|
|
GrantStatus string `gorm:"column:grant_status;size:32;index:idx_voice_room_rocket_reward_retry,priority:1"`
|
|
PopupStatus string `gorm:"column:popup_status;size:32"`
|
|
ErrorMessage string `gorm:"column:error_message;size:1024"`
|
|
GrantTime *time.Time `gorm:"column:grant_time"`
|
|
CreateTime time.Time `gorm:"column:create_time;index:idx_voice_room_rocket_reward_user,priority:3"`
|
|
UpdateTime time.Time `gorm:"column:update_time;index:idx_voice_room_rocket_reward_retry,priority:2"`
|
|
}
|
|
|
|
func (VoiceRoomRocketRewardRecord) TableName() string { return "voice_room_rocket_reward_record" }
|
|
|
|
// VoiceRoomRocketAudienceSnapshot 保存发射后窗口内在线用户快照。
|
|
type VoiceRoomRocketAudienceSnapshot struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
LaunchID int64 `gorm:"column:launch_id;uniqueIndex:uk_voice_room_rocket_audience,priority:1;index:idx_voice_room_rocket_audience_launch,priority:1"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32"`
|
|
RoomID int64 `gorm:"column:room_id"`
|
|
UserID int64 `gorm:"column:user_id;uniqueIndex:uk_voice_room_rocket_audience,priority:2"`
|
|
LastSeenTime time.Time `gorm:"column:last_seen_time"`
|
|
Selected bool `gorm:"column:selected;index:idx_voice_room_rocket_audience_launch,priority:2"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
}
|
|
|
|
func (VoiceRoomRocketAudienceSnapshot) TableName() string {
|
|
return "voice_room_rocket_audience_snapshot"
|
|
}
|