2026-01-02 04:11:37 +08:00
|
|
|
package model
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"blazing/cool"
|
|
|
|
|
)
|
|
|
|
|
|
2026-01-08 23:57:22 +08:00
|
|
|
// -------------------------- 表名常量定义(统一管理所有塔配置表名)--------------------------
|
2026-01-02 04:11:37 +08:00
|
|
|
const (
|
2026-01-19 18:51:56 +08:00
|
|
|
TableNamedARKTowerConfig = "config_tower_110" // 勇者之塔110配置表
|
|
|
|
|
TableNameTrialTowerConfig = "config_tower_500" // 试炼之塔500配置表
|
|
|
|
|
TableNameBraveTowerConfig = "config_tower_600" // 勇者之塔600配置表
|
2026-01-02 04:11:37 +08:00
|
|
|
)
|
|
|
|
|
|
2026-01-08 23:57:22 +08:00
|
|
|
type BaseTowerConfig struct {
|
2026-02-13 22:57:05 +08:00
|
|
|
*BaseConfig
|
2026-02-25 16:18:10 +08:00
|
|
|
Name string `gorm:"type:varchar(100);default:'';comment:'塔名称'" json:"name" description:"塔名称"`
|
|
|
|
|
TowerLevel uint32 `gorm:"not null;default:0;uniqueIndex;comment:'塔层数'" json:"tower_level" `
|
|
|
|
|
BossIds []uint32 `gorm:"type:jsonb; ;comment:'塔层BOSS ID列表'" json:"boss_ids"`
|
2026-01-08 23:57:22 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// NewBaseTowerConfig 创建基础塔配置实例(所有塔类型共用)
|
2026-02-13 22:57:05 +08:00
|
|
|
func NewBaseTowerConfig() *BaseTowerConfig {
|
|
|
|
|
return &BaseTowerConfig{
|
|
|
|
|
BaseConfig: NewBaseConfig(),
|
2026-01-08 23:57:22 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-02 04:11:37 +08:00
|
|
|
type Tower110Config struct {
|
2026-02-13 22:57:05 +08:00
|
|
|
*BaseTowerConfig
|
2026-01-02 04:11:37 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-08 23:57:22 +08:00
|
|
|
// Tower500Config 试炼之塔500配置模型
|
|
|
|
|
type Tower500Config struct {
|
2026-02-13 22:57:05 +08:00
|
|
|
*BaseTowerConfig
|
2026-01-08 23:57:22 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Tower600Config 勇者之塔600配置模型
|
|
|
|
|
type Tower600Config struct {
|
2026-02-13 22:57:05 +08:00
|
|
|
*BaseTowerConfig
|
2026-01-08 23:57:22 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -------------------------- 各塔模型的核心配套方法(统一规范)--------------------------
|
|
|
|
|
|
|
|
|
|
// ===== Tower110Config 专属方法 =====
|
2026-01-02 04:11:37 +08:00
|
|
|
func (*Tower110Config) TableName() string {
|
|
|
|
|
return TableNamedARKTowerConfig
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (*Tower110Config) GroupName() string {
|
|
|
|
|
return "default"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func New110TowerConfig() *Tower110Config {
|
|
|
|
|
return &Tower110Config{
|
|
|
|
|
BaseTowerConfig: NewBaseTowerConfig(),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-08 23:57:22 +08:00
|
|
|
// ===== Tower500Config 专属方法 =====
|
|
|
|
|
func (*Tower500Config) TableName() string {
|
|
|
|
|
return TableNameTrialTowerConfig
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (*Tower500Config) GroupName() string {
|
|
|
|
|
return "default"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func New500TowerConfig() *Tower500Config {
|
|
|
|
|
return &Tower500Config{
|
|
|
|
|
BaseTowerConfig: NewBaseTowerConfig(),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ===== Tower600Config 专属方法 =====
|
|
|
|
|
func (*Tower600Config) TableName() string {
|
|
|
|
|
return TableNameBraveTowerConfig
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (*Tower600Config) GroupName() string {
|
|
|
|
|
return "default"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func New600TowerConfig() *Tower600Config {
|
|
|
|
|
return &Tower600Config{
|
|
|
|
|
BaseTowerConfig: NewBaseTowerConfig(),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -------------------------- 表结构自动同步(初始化所有塔配置表)--------------------------
|
2026-01-02 04:11:37 +08:00
|
|
|
func init() {
|
2026-01-08 23:57:22 +08:00
|
|
|
// 依次创建所有塔配置表,保持原有自动同步逻辑
|
2026-01-02 04:11:37 +08:00
|
|
|
cool.CreateTable(&Tower110Config{})
|
2026-01-08 23:57:22 +08:00
|
|
|
cool.CreateTable(&Tower500Config{})
|
|
|
|
|
cool.CreateTable(&Tower600Config{})
|
2026-01-02 04:11:37 +08:00
|
|
|
}
|