package model import "time" // VoiceRoomRedPacketConfig 保存语音房红包系统级配置。 type VoiceRoomRedPacketConfig struct { ID int64 `gorm:"column:id;primaryKey"` SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_voice_room_red_packet_config"` Enabled bool `gorm:"column:enabled"` DailySendLimit int `gorm:"column:daily_send_limit"` DelaySeconds int `gorm:"column:delay_seconds"` RefundAfterSeconds int `gorm:"column:refund_after_seconds"` Timezone string `gorm:"column:timezone;size:64"` AmountOptions string `gorm:"column:amount_options;size:255"` CountOptions string `gorm:"column:count_options;size:255"` CreateTime time.Time `gorm:"column:create_time"` UpdateTime time.Time `gorm:"column:update_time"` } func (VoiceRoomRedPacketConfig) TableName() string { return "voice_room_red_packet_config" } // VoiceRoomRegionCountry 保存国家到区域的映射。 type VoiceRoomRegionCountry struct { ID int64 `gorm:"column:id;primaryKey"` SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_voice_room_region_country,priority:1;index:idx_voice_room_region_country_region,priority:1"` RegionCode string `gorm:"column:region_code;size:32;index:idx_voice_room_region_country_region,priority:2"` CountryCode string `gorm:"column:country_code;size:32;uniqueIndex:uk_voice_room_region_country,priority:2"` Enabled bool `gorm:"column:enabled"` CreateTime time.Time `gorm:"column:create_time"` UpdateTime time.Time `gorm:"column:update_time"` } func (VoiceRoomRegionCountry) TableName() string { return "voice_room_region_country" } // RoomLiveBroadcastVIP 是 Java 房间资料表,Go 侧只读取 room_id 到 room_account 的映射。 type RoomLiveBroadcastVIP struct { ID int64 `gorm:"column:id;primaryKey"` UserID int64 `gorm:"column:user_id"` RoomID int64 `gorm:"column:room_id;index"` RoomAccount int64 `gorm:"column:room_account"` ExpireDate time.Time `gorm:"column:expire_date"` CreateTime time.Time `gorm:"column:create_time"` UpdateTime time.Time `gorm:"column:update_time"` } func (RoomLiveBroadcastVIP) TableName() string { return "room_live_broadcasts_vip" } // VoiceRoomRedPacket 保存语音房红包主记录。 type VoiceRoomRedPacket struct { ID int64 `gorm:"column:id;primaryKey"` PacketNo string `gorm:"column:packet_no;size:64;uniqueIndex:uk_voice_room_red_packet_no"` RequestID string `gorm:"column:request_id;size:128;uniqueIndex:uk_voice_room_red_packet_request"` SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_voice_room_red_packet_room,priority:1;index:idx_voice_room_red_packet_sender_day,priority:1"` RoomID int64 `gorm:"column:room_id;index:idx_voice_room_red_packet_room,priority:2"` SenderUserID int64 `gorm:"column:sender_user_id;index:idx_voice_room_red_packet_sender_day,priority:2"` SenderRegionCode string `gorm:"column:sender_region_code;size:32"` PacketMode string `gorm:"column:packet_mode;size:16"` AmountMode string `gorm:"column:amount_mode;size:16"` TotalAmount int64 `gorm:"column:total_amount"` TotalCount int `gorm:"column:total_count"` RemainAmount int64 `gorm:"column:remain_amount"` RemainCount int `gorm:"column:remain_count"` ClaimStartTime time.Time `gorm:"column:claim_start_time"` ExpireTime time.Time `gorm:"column:expire_time;index:idx_voice_room_red_packet_expire,priority:2"` Status string `gorm:"column:status;size:32;index:idx_voice_room_red_packet_expire,priority:1"` SendWalletEventID string `gorm:"column:send_wallet_event_id;size:128;uniqueIndex:uk_voice_room_red_packet_send_event"` RefundWalletEventID string `gorm:"column:refund_wallet_event_id;size:128"` RefundAmount int64 `gorm:"column:refund_amount"` RefundStatus string `gorm:"column:refund_status;size:32"` ErrorMessage string `gorm:"column:error_message;size:1024"` CreateTime time.Time `gorm:"column:create_time;index:idx_voice_room_red_packet_sender_day,priority:3"` UpdateTime time.Time `gorm:"column:update_time"` } func (VoiceRoomRedPacket) TableName() string { return "voice_room_red_packet" } // VoiceRoomRedPacketSlice 保存红包预拆分份额。 type VoiceRoomRedPacketSlice struct { ID int64 `gorm:"column:id;primaryKey;index:idx_voice_room_red_packet_slice_claim_order,priority:4"` PacketID int64 `gorm:"column:packet_id;uniqueIndex:uk_voice_room_red_packet_slice,priority:1;index:idx_voice_room_red_packet_slice_claim,priority:1;index:idx_voice_room_red_packet_slice_claim_order,priority:1"` PacketNo string `gorm:"column:packet_no;size:64"` SortNo int `gorm:"column:sort_no;uniqueIndex:uk_voice_room_red_packet_slice,priority:2;index:idx_voice_room_red_packet_slice_claim_order,priority:3"` Amount int64 `gorm:"column:amount"` Status string `gorm:"column:status;size:32;index:idx_voice_room_red_packet_slice_claim,priority:2;index:idx_voice_room_red_packet_slice_claim_order,priority:2"` ClaimUserID *int64 `gorm:"column:claim_user_id"` ClaimRecordID *int64 `gorm:"column:claim_record_id"` CreateTime time.Time `gorm:"column:create_time"` UpdateTime time.Time `gorm:"column:update_time"` } func (VoiceRoomRedPacketSlice) TableName() string { return "voice_room_red_packet_slice" } // VoiceRoomRedPacketClaim 保存领取记录和入账状态。 type VoiceRoomRedPacketClaim struct { ID int64 `gorm:"column:id;primaryKey"` PacketID int64 `gorm:"column:packet_id;uniqueIndex:uk_voice_room_red_packet_claim_user,priority:1;index:idx_voice_room_red_packet_claim_packet,priority:1"` PacketNo string `gorm:"column:packet_no;size:64"` SliceID int64 `gorm:"column:slice_id"` SysOrigin string `gorm:"column:sys_origin;size:32"` RoomID int64 `gorm:"column:room_id"` UserID int64 `gorm:"column:user_id;uniqueIndex:uk_voice_room_red_packet_claim_user,priority:2"` UserRegionCode string `gorm:"column:user_region_code;size:32"` Amount int64 `gorm:"column:amount"` WalletEventID string `gorm:"column:wallet_event_id;size:128;uniqueIndex:uk_voice_room_red_packet_claim_event"` WalletStatus string `gorm:"column:wallet_status;size:32"` ErrorMessage string `gorm:"column:error_message;size:1024"` ClaimTime time.Time `gorm:"column:claim_time;index:idx_voice_room_red_packet_claim_packet,priority:2"` CreateTime time.Time `gorm:"column:create_time"` UpdateTime time.Time `gorm:"column:update_time"` } func (VoiceRoomRedPacketClaim) TableName() string { return "voice_room_red_packet_claim" } // VoiceRoomRedPacketDailyCounter 保存用户单日发送计数。 type VoiceRoomRedPacketDailyCounter struct { ID int64 `gorm:"column:id;primaryKey"` SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_voice_room_red_packet_daily,priority:1"` UserID int64 `gorm:"column:user_id;uniqueIndex:uk_voice_room_red_packet_daily,priority:2"` DayKey string `gorm:"column:day_key;size:16;uniqueIndex:uk_voice_room_red_packet_daily,priority:3"` SendCount int `gorm:"column:send_count"` CreateTime time.Time `gorm:"column:create_time"` UpdateTime time.Time `gorm:"column:update_time"` } func (VoiceRoomRedPacketDailyCounter) TableName() string { return "voice_room_red_packet_daily_counter" }