yumi-golang/internal/model/voice_room_red_packet_models.go
2026-05-23 11:10:52 +08:00

128 lines
7.6 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 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"
}