yumi-golang/internal/model/baishun_models.go
2026-04-21 20:21:28 +08:00

180 lines
20 KiB
Go

package model
import "time"
// SysGameListConfig 是系统游戏列表主表,描述平台可展示的游戏。
type SysGameListConfig struct {
ID int64 `gorm:"column:id;primaryKey"` // 主键
SysOrigin string `gorm:"column:sys_origin;size:32"` // 系统标识
GameOrigin string `gorm:"column:game_origin;size:32"` // 游戏来源
GameID string `gorm:"column:game_id;size:64"` // 内部游戏 ID
Name string `gorm:"column:name;size:128"` // 游戏名称
Category string `gorm:"column:category;size:64"` // 分类
GameCode string `gorm:"column:game_code;size:512"` // 游戏码或入口标识
Cover string `gorm:"column:cover;size:1024"` // 封面图
Amounts string `gorm:"column:amounts;size:512"` // 金额配置
Showcase bool `gorm:"column:is_showcase"` // 是否首页推荐
Sort int64 `gorm:"column:sort"` // 排序值
Height float64 `gorm:"column:height"` // 高度
Width float64 `gorm:"column:width"` // 宽度
FullScreen bool `gorm:"column:full_screen"` // 是否全屏展示
ClientOrigin string `gorm:"column:client_origin;size:32"` // 客户端来源
Regions string `gorm:"column:regions;size:255"` // 可投放地区
GameMode string `gorm:"column:game_mode;size:255"` // 游戏模式配置
}
// TableName 返回系统游戏列表表名。
func (SysGameListConfig) TableName() string { return "sys_game_list_config" }
// SysGameListVendorExt 保存某个厂商在系统游戏表上的扩展信息。
type SysGameListVendorExt struct {
ID int64 `gorm:"column:id;primaryKey"` // 主键
GameListConfigID int64 `gorm:"column:game_list_config_id;uniqueIndex:uk_game_vendor_ext_cfg_vendor,priority:1"` // 关联系统游戏配置 ID
SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_game_vendor_ext_sys_vendor,priority:1"` // 系统标识
VendorType string `gorm:"column:vendor_type;size:32;uniqueIndex:uk_game_vendor_ext_cfg_vendor,priority:2;index:idx_game_vendor_ext_sys_vendor,priority:2"` // 厂商类型
VendorGameID string `gorm:"column:vendor_game_id;size:64"` // 厂商游戏 ID
LaunchMode string `gorm:"column:launch_mode;size:32"` // 启动模式
PackageVersion string `gorm:"column:package_version;size:32"` // 包版本号
PackageURL string `gorm:"column:package_url;size:1024"` // 包下载地址
PreviewURL string `gorm:"column:preview_url;size:1024"` // 预览地址
Orientation *int `gorm:"column:orientation"` // 屏幕方向
SafeHeight int `gorm:"column:safe_height"` // 安全区域高度
GSP string `gorm:"column:gsp;size:64"` // GSP 配置
BridgeSchemaVersion string `gorm:"column:bridge_schema_version;size:16"` // Bridge 协议版本
CurrencyType *int `gorm:"column:currency_type"` // 货币类型
CurrencyIcon string `gorm:"column:currency_icon;size:1024"` // 货币图标
ExtraJSON string `gorm:"column:extra_json;type:text"` // 额外扩展配置
Enabled bool `gorm:"column:enabled;index:idx_game_vendor_ext_sys_vendor,priority:3"` // 是否启用
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
}
// TableName 返回游戏厂商扩展表名。
func (SysGameListVendorExt) TableName() string { return "sys_game_list_vendor_ext" }
// BaishunGameCatalog 是百顺平台同步到本地的游戏目录。
type BaishunGameCatalog struct {
ID int64 `gorm:"column:id;primaryKey"` // 主键
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_baishun_catalog_sys_vendor_game,priority:1;index:idx_baishun_catalog_internal_game,priority:1"` // 系统标识
InternalGameID string `gorm:"column:internal_game_id;size:64;index:idx_baishun_catalog_internal_game,priority:2"` // 内部游戏 ID
VendorGameID int `gorm:"column:vendor_game_id;uniqueIndex:uk_baishun_catalog_sys_vendor_game,priority:2"` // 百顺游戏 ID
Name string `gorm:"column:name;size:128"` // 游戏名称
Cover string `gorm:"column:cover;size:1024"` // 封面图
PreviewURL string `gorm:"column:preview_url;size:1024"` // 预览地址
DownloadURL string `gorm:"column:download_url;size:1024"` // 下载地址
PackageVersion string `gorm:"column:package_version;size:32"` // 包版本
GameModeJSON string `gorm:"column:game_mode_json;size:64"` // 游戏模式原始 JSON
Orientation *int `gorm:"column:orientation"` // 屏幕方向
SafeHeight int `gorm:"column:safe_height"` // 安全区域高度
VenueLevelJSON string `gorm:"column:venue_level_json;size:64"` // 场馆等级 JSON
GSP string `gorm:"column:gsp;size:64"` // GSP 配置
RawJSON string `gorm:"column:raw_json;type:longtext"` // 原始目录数据
Status string `gorm:"column:status;size:32;index:idx_baishun_catalog_internal_game,priority:3"` // 状态
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
}
// TableName 返回百顺目录表名。
func (BaishunGameCatalog) TableName() string { return "baishun_game_catalog" }
// BaishunLaunchSession 保存一次房间内游戏启动会话。
type BaishunLaunchSession struct {
ID int64 `gorm:"column:id;primaryKey"` // 会话主键
SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_baishun_session_room_user,priority:1"` // 系统标识
RoomID string `gorm:"column:room_id;size:64;index:idx_baishun_session_room_user,priority:2"` // 房间 ID
UserID int64 `gorm:"column:user_id;index:idx_baishun_session_room_user,priority:3"` // 发起用户 ID
InternalGameID string `gorm:"column:internal_game_id;size:64"` // 内部游戏 ID
VendorGameID int `gorm:"column:vendor_game_id"` // 厂商游戏 ID
GameSessionID string `gorm:"column:game_session_id;size:64;uniqueIndex:uk_baishun_game_session"` // 业务会话 ID
LaunchCode string `gorm:"column:launch_code;size:128;uniqueIndex:uk_baishun_launch_code"` // 首次启动 code
LaunchCodeExpireTime time.Time `gorm:"column:launch_code_expire_time"` // code 过期时间
SSToken *string `gorm:"column:ss_token;size:255;uniqueIndex:uk_baishun_ss_token"` // 百顺 ss_token
SSTokenExpireTime *time.Time `gorm:"column:ss_token_expire_time;index:idx_baishun_session_token_expire"` // token 过期时间
Language string `gorm:"column:language;size:16"` // 语言
GSP int `gorm:"column:gsp"` // GSP 值
CurrencyType int `gorm:"column:currency_type"` // 货币类型
CurrencyIcon string `gorm:"column:currency_icon;size:1024"` // 货币图标
SceneMode int `gorm:"column:scene_mode"` // 场景模式
GameMode int `gorm:"column:game_mode"` // 游戏模式
PackageVersion string `gorm:"column:package_version;size:32"` // 包版本
ClientIP string `gorm:"column:client_ip;size:64"` // 客户端 IP
ClientOrigin string `gorm:"column:client_origin;size:16"` // 客户端来源
Status string `gorm:"column:status;size:32;index:idx_baishun_session_room_user,priority:4"` // 会话状态
ClosedReason string `gorm:"column:closed_reason;size:64"` // 关闭原因
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
}
// TableName 返回百顺启动会话表名。
func (BaishunLaunchSession) TableName() string { return "baishun_launch_session" }
// BaishunOrderIdempotency 记录百顺扣增币回调的幂等处理结果。
type BaishunOrderIdempotency struct {
ID int64 `gorm:"column:id;primaryKey"` // 主键
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_baishun_order,priority:1;index:idx_baishun_order_user_time,priority:1"` // 系统标识
OrderID string `gorm:"column:order_id;size:128;uniqueIndex:uk_baishun_order,priority:2"` // 订单 ID
GameRoundID string `gorm:"column:game_round_id;size:128;index:idx_baishun_round"` // 局号
RoomID string `gorm:"column:room_id;size:64"` // 房间 ID
UserID int64 `gorm:"column:user_id;index:idx_baishun_order_user_time,priority:2"` // 用户 ID
VendorGameID int `gorm:"column:vendor_game_id"` // 厂商游戏 ID
CurrencyDiff int64 `gorm:"column:currency_diff"` // 货币变化值
DiffMsg string `gorm:"column:diff_msg;size:32"` // 变化说明
MsgType string `gorm:"column:msg_type;size:64"` // 消息类型
CurrencyType *int `gorm:"column:currency_type"` // 货币类型
WalletEventID string `gorm:"column:wallet_event_id;size:160;uniqueIndex:uk_baishun_wallet_event"` // 钱包事件 ID
WalletAssetRecordID *int64 `gorm:"column:wallet_asset_record_id"` // 钱包资产记录 ID
Status string `gorm:"column:status;size:32"` // 处理状态
RequestJSON string `gorm:"column:request_json;type:longtext"` // 原始请求
ResponseJSON string `gorm:"column:response_json;type:longtext"` // 回包结果
CreateTime time.Time `gorm:"column:create_time;index:idx_baishun_order_user_time,priority:3"` // 创建时间
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
}
// TableName 返回百顺订单幂等表名。
func (BaishunOrderIdempotency) TableName() string { return "baishun_order_idempotency" }
// BaishunCallbackLog 保存百顺各类回调请求和响应,便于审计排查。
type BaishunCallbackLog struct {
ID int64 `gorm:"column:id;primaryKey"` // 日志主键
SysOrigin string `gorm:"column:sys_origin;size:32"` // 系统标识
RequestType string `gorm:"column:request_type;size:32;index:idx_baishun_log_type_time,priority:1"` // 回调类型
OrderID string `gorm:"column:order_id;size:128;index:idx_baishun_log_order"` // 订单 ID
GameRoundID string `gorm:"column:game_round_id;size:128"` // 局号
RoomID string `gorm:"column:room_id;size:64;index:idx_baishun_log_room_user,priority:1"` // 房间 ID
UserID *int64 `gorm:"column:user_id;index:idx_baishun_log_room_user,priority:2"` // 用户 ID
VendorGameID *int `gorm:"column:vendor_game_id"` // 厂商游戏 ID
RequestJSON string `gorm:"column:request_json;type:longtext"` // 请求报文
ResponseJSON string `gorm:"column:response_json;type:longtext"` // 响应报文
BizCode string `gorm:"column:biz_code;size:32"` // 业务状态码
BizMessage string `gorm:"column:biz_message;type:text"` // 业务描述
Status string `gorm:"column:status;size:32"` // 处理状态
CreateTime time.Time `gorm:"column:create_time;index:idx_baishun_log_type_time,priority:2"` // 创建时间
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
}
// TableName 返回百顺回调日志表名。
func (BaishunCallbackLog) TableName() string { return "baishun_callback_log" }
// BaishunRoomState 保存房间当前挂载的游戏状态。
type BaishunRoomState struct {
ID int64 `gorm:"column:id;primaryKey"` // 主键
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_baishun_room_state,priority:1"` // 系统标识
RoomID string `gorm:"column:room_id;size:64;uniqueIndex:uk_baishun_room_state,priority:2"` // 房间 ID
HostUserID int64 `gorm:"column:host_user_id"` // 房主用户 ID
CurrentGameID string `gorm:"column:current_game_id;size:64"` // 当前内部游戏 ID
CurrentVendorGameID *int `gorm:"column:current_vendor_game_id"` // 当前厂商游戏 ID
CurrentGameName string `gorm:"column:current_game_name;size:128"` // 当前游戏名
CurrentGameCover string `gorm:"column:current_game_cover;size:1024"` // 当前游戏封面
GameSessionID string `gorm:"column:game_session_id;size:64;index:idx_baishun_room_state_session"` // 当前会话 ID
LaunchUserID *int64 `gorm:"column:launch_user_id"` // 发起启动的用户 ID
State string `gorm:"column:state;size:32"` // 房间游戏状态
ExtraJSON string `gorm:"column:extra_json;type:text"` // 扩展信息
StartTime *time.Time `gorm:"column:start_time"` // 开始时间
EndTime *time.Time `gorm:"column:end_time"` // 结束时间
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
}
// TableName 返回百顺房间状态表名。
func (BaishunRoomState) TableName() string { return "baishun_room_state" }