2026-08-14 13:17:03 +08:00
|
|
|
|
package model
|
|
|
|
|
|
|
|
|
|
|
|
import "gorm.io/plugin/soft_delete"
|
|
|
|
|
|
|
|
|
|
|
|
// Theme 主题模板表:全站换肤模板
|
|
|
|
|
|
type Theme struct {
|
|
|
|
|
|
ID int `gorm:"primaryKey" json:"id"` // 主题ID
|
|
|
|
|
|
Code string `gorm:"size:32;uniqueIndex" json:"code"` // 主题编码(body 挂 theme-编码 class)
|
|
|
|
|
|
Name string `gorm:"size:32" json:"name"` // 主题名称
|
|
|
|
|
|
Description string `gorm:"size:255" json:"description"` // 风格描述
|
|
|
|
|
|
CSSVars string `gorm:"column:css_vars" json:"css_vars"` // CSS 变量 JSON(写入 :root 生效)
|
|
|
|
|
|
PreviewColors string `gorm:"size:64" json:"preview_colors"` // 预览色块(逗号分隔)
|
|
|
|
|
|
Sort int `gorm:"default:0" json:"sort"` // 排序权重
|
|
|
|
|
|
Status int `gorm:"default:1" json:"status"` // 状态:1可用 2停用
|
|
|
|
|
|
CreatedAt int64 `gorm:"autoCreateTime" json:"created_at"` // 创建时间(int 时间戳)
|
|
|
|
|
|
UpdatedAt int64 `gorm:"autoUpdateTime" json:"updated_at"` // 更新时间(int 时间戳)
|
|
|
|
|
|
DeletedAt soft_delete.DeletedAt `gorm:"default:0" json:"-"` // 软删除(0=未删除)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// TableName 指定表名
|
|
|
|
|
|
func (Theme) TableName() string { return "themes" }
|
|
|
|
|
|
|
|
|
|
|
|
// SiteConfig 站点配置表:键值对形式的全站配置
|
|
|
|
|
|
type SiteConfig struct {
|
|
|
|
|
|
ID int `gorm:"primaryKey" json:"id"` // 配置ID
|
|
|
|
|
|
ConfigKey string `gorm:"size:64;uniqueIndex" json:"config_key"` // 配置键
|
|
|
|
|
|
ConfigValue string `gorm:"size:500" json:"config_value"` // 配置值(字符串,自行转换)
|
|
|
|
|
|
Remark string `gorm:"size:255" json:"remark"` // 配置说明
|
|
|
|
|
|
CreatedAt int64 `gorm:"autoCreateTime" json:"created_at"` // 创建时间(int 时间戳)
|
|
|
|
|
|
UpdatedAt int64 `gorm:"autoUpdateTime" json:"updated_at"` // 更新时间(int 时间戳)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// TableName 指定表名
|
|
|
|
|
|
func (SiteConfig) TableName() string { return "site_configs" }
|
|
|
|
|
|
|
|
|
|
|
|
// 站点配置键名常量(与 sql/init.sql 中的种子数据对应)
|
|
|
|
|
|
const (
|
|
|
|
|
|
ConfKeySiteName = "site_name" // 站点名称
|
|
|
|
|
|
ConfKeyActiveTheme = "active_theme" // 当前启用主题编码
|
|
|
|
|
|
ConfKeyAnnouncement = "announcement" // 站点公告
|
|
|
|
|
|
ConfKeySignBasePoints = "signin_base_points" // 签到基础积分
|
|
|
|
|
|
ConfKeySignStreakStep = "signin_streak_step" // 连签递增积分
|
|
|
|
|
|
ConfKeySignStreakCap = "signin_streak_cap" // 连签封顶天数
|
|
|
|
|
|
ConfKeyRegisterGift = "register_gift_points" // 注册赠送积分
|
|
|
|
|
|
ConfKeyBattleWinPoints = "battle_win_points" // 对战获胜奖励积分
|
|
|
|
|
|
// 大厅游戏轮播(参与轮播的游戏在 games.carousel 上配置)
|
|
|
|
|
|
ConfKeyCarouselStyle = "carousel_style" // 轮播效果:slide横滑/fade淡入淡出/coverflow封面流/cards卡片堆叠
|
|
|
|
|
|
ConfKeyCarouselInterval = "carousel_interval" // 自动轮播间隔(秒)
|
|
|
|
|
|
// AI 大模型接入配置(后台可改,非空时覆盖 config.yaml 中的同名项)
|
|
|
|
|
|
ConfKeyAIProvider = "ai_provider" // 全站统一的对战AI提供方:rule/spark/deepseek(前台只选难度)
|
|
|
|
|
|
ConfKeyAISparkKey = "ai_spark_key" // 讯飞星火 APIPassword
|
|
|
|
|
|
ConfKeyAISparkBase = "ai_spark_base" // 讯飞星火接口地址
|
|
|
|
|
|
ConfKeyAISparkModel = "ai_spark_model" // 讯飞星火模型名
|
|
|
|
|
|
ConfKeyAIDeepSeekKey = "ai_deepseek_key" // DeepSeek API Key
|
|
|
|
|
|
ConfKeyAIDeepSeekBase = "ai_deepseek_base" // DeepSeek 接口地址
|
|
|
|
|
|
ConfKeyAIDeepSeekModel = "ai_deepseek_model" // DeepSeek 模型名
|
2026-08-14 17:50:37 +08:00
|
|
|
|
// 桌面端版本升级配置(后台可改,桌面端启动时与菜单「检查更新…」会拉取)
|
|
|
|
|
|
ConfKeyAppVersion = "app_version" // 桌面端最新版本号(语义化,如 1.0.1)
|
|
|
|
|
|
ConfKeyAppDownloadURL = "app_download_url" // 最新安装包下载地址(https://...)
|
|
|
|
|
|
ConfKeyAppReleaseNotes = "app_release_notes" // 更新说明(一行简短文案,桌面端弹窗展示)
|
|
|
|
|
|
ConfKeyAppForceUpdate = "app_force_update" // 是否强制更新:1=强制 0=不强制(强制时桌面端不允许跳过)
|
2026-08-14 13:17:03 +08:00
|
|
|
|
)
|