244 lines
27 KiB
Go
244 lines
27 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;index:idx_game_vendor_ext_sys_profile_vendor,priority:1"` // 系统标识
|
||
Profile string `gorm:"column:profile;size:32;default:PROD;index:idx_game_vendor_ext_sys_profile_vendor,priority:2"` // 配置档案:PROD/TEST
|
||
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;index:idx_game_vendor_ext_sys_profile_vendor,priority:3"` // 厂商类型
|
||
VendorGameID string `gorm:"column:vendor_game_id;size:64;index:idx_game_vendor_ext_sys_profile_vendor,priority:4"` // 厂商游戏 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;index:idx_game_vendor_ext_sys_profile_vendor,priority:5"` // 是否启用
|
||
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" }
|
||
|
||
// BaishunProviderConfig 保存每个系统的百顺接入配置。
|
||
type BaishunProviderConfig struct {
|
||
ID int64 `gorm:"column:id;primaryKey"` // 主键
|
||
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_baishun_provider_sys_origin_profile,priority:1;index:idx_baishun_provider_active,priority:1"` // 系统标识
|
||
Profile string `gorm:"column:profile;size:32;default:PROD;uniqueIndex:uk_baishun_provider_sys_origin_profile,priority:2"` // 配置档案:PROD/TEST
|
||
Active bool `gorm:"column:active;index:idx_baishun_provider_active,priority:2"` // 是否当前启用
|
||
PlatformBaseURL string `gorm:"column:platform_base_url;size:1024"` // 百顺平台基础地址
|
||
GameListURL string `gorm:"column:game_list_url;size:1024"` // 百顺游戏列表完整地址
|
||
LuckyGiftURL string `gorm:"column:lucky_gift_url;size:1024"` // 幸运礼物完整地址
|
||
AppID int64 `gorm:"column:app_id;index:idx_baishun_provider_app,priority:1"` // 百顺应用 ID
|
||
AppName string `gorm:"column:app_name;size:128"` // 百顺应用名
|
||
AppChannel string `gorm:"column:app_channel;size:64;index:idx_baishun_provider_app,priority:2"` // 百顺渠道
|
||
AppKey string `gorm:"column:app_key;size:255"` // 百顺密钥
|
||
GSP int `gorm:"column:gsp"` // 默认 GSP
|
||
LaunchCodeTTLSeconds int `gorm:"column:launch_code_ttl_seconds"` // 启动码过期秒数
|
||
SSTokenTTLSeconds int `gorm:"column:ss_token_ttl_seconds"` // ss_token 过期秒数
|
||
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
|
||
UpdateTime time.Time `gorm:"column:update_time;index:idx_baishun_provider_active,priority:3"` // 更新时间
|
||
}
|
||
|
||
// TableName 返回百顺配置表名。
|
||
func (BaishunProviderConfig) TableName() string { return "baishun_provider_config" }
|
||
|
||
// BaishunGameCatalog 是百顺平台同步到本地的游戏目录。
|
||
type BaishunGameCatalog struct {
|
||
ID int64 `gorm:"column:id;primaryKey"` // 主键
|
||
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_baishun_catalog_sys_profile_vendor_game,priority:1;index:idx_baishun_catalog_profile_internal_game,priority:1"` // 系统标识
|
||
Profile string `gorm:"column:profile;size:32;default:PROD;uniqueIndex:uk_baishun_catalog_sys_profile_vendor_game,priority:2;index:idx_baishun_catalog_profile_internal_game,priority:2"` // 配置档案:PROD/TEST
|
||
InternalGameID string `gorm:"column:internal_game_id;size:64;index:idx_baishun_catalog_profile_internal_game,priority:3"` // 内部游戏 ID
|
||
VendorGameID int `gorm:"column:vendor_game_id;uniqueIndex:uk_baishun_catalog_sys_profile_vendor_game,priority:3"` // 百顺游戏 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_profile_internal_game,priority:4"` // 状态
|
||
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
|
||
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
|
||
}
|
||
|
||
// TableName 返回百顺目录表名。
|
||
func (BaishunGameCatalog) TableName() string { return "baishun_game_catalog" }
|
||
|
||
// LingxianProviderConfig 保存每个系统的灵仙接入配置。
|
||
type LingxianProviderConfig struct {
|
||
ID int64 `gorm:"column:id;primaryKey"`
|
||
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_lingxian_provider_sys_origin_profile,priority:1;index:idx_lingxian_provider_active,priority:1"`
|
||
Profile string `gorm:"column:profile;size:32;default:PROD;uniqueIndex:uk_lingxian_provider_sys_origin_profile,priority:2"`
|
||
Active bool `gorm:"column:active;index:idx_lingxian_provider_active,priority:2"`
|
||
GameListURL string `gorm:"column:game_list_url;size:1024"`
|
||
AppKey string `gorm:"column:app_key;size:255"`
|
||
TestUID string `gorm:"column:test_uid;size:64"`
|
||
TestToken string `gorm:"column:test_token;size:1024"`
|
||
TestRoomID string `gorm:"column:test_room_id;size:64"`
|
||
CreateTime time.Time `gorm:"column:create_time"`
|
||
UpdateTime time.Time `gorm:"column:update_time;index:idx_lingxian_provider_active,priority:3"`
|
||
}
|
||
|
||
// TableName 返回灵仙配置表名。
|
||
func (LingxianProviderConfig) TableName() string { return "lingxian_provider_config" }
|
||
|
||
// LingxianGameCatalog 是灵仙平台同步到本地的游戏目录。
|
||
type LingxianGameCatalog struct {
|
||
ID int64 `gorm:"column:id;primaryKey"`
|
||
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_lingxian_catalog_sys_profile_vendor_game,priority:1;index:idx_lingxian_catalog_profile_internal_game,priority:1"`
|
||
Profile string `gorm:"column:profile;size:32;default:PROD;uniqueIndex:uk_lingxian_catalog_sys_profile_vendor_game,priority:2;index:idx_lingxian_catalog_profile_internal_game,priority:2"`
|
||
InternalGameID string `gorm:"column:internal_game_id;size:64;index:idx_lingxian_catalog_profile_internal_game,priority:3"`
|
||
VendorGameID string `gorm:"column:vendor_game_id;size:64;uniqueIndex:uk_lingxian_catalog_sys_profile_vendor_game,priority:3"`
|
||
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"`
|
||
RawJSON string `gorm:"column:raw_json;type:longtext"`
|
||
Status string `gorm:"column:status;size:32;index:idx_lingxian_catalog_profile_internal_game,priority:4"`
|
||
CreateTime time.Time `gorm:"column:create_time"`
|
||
UpdateTime time.Time `gorm:"column:update_time"`
|
||
}
|
||
|
||
// TableName 返回灵仙目录表名。
|
||
func (LingxianGameCatalog) TableName() string { return "lingxian_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" }
|