You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

150 lines
11 KiB

package comm
import "yunyan/lego/core"
// 服务定义
const (
Service_Gateway = "gateway" //网关服务 可多开
Service_Home = "home" //大厅服务 运行一些公用接口
Service_Api = "api" //渠道接口服
Service_Migu = "migu" //移动灵犀聊天服务 独立部署 对外OpenAI兼容接口
Service_Console = "console" //后台控制面服务 独立部署 注册各应用 直连应用库 + 发配置事件
)
// 服务组件名称
const (
SC_ServiceHttpRouteComp core.S_Comps = "SC_HttpRouteComp" //服务组件 消息路由组件
)
// 模块名定义处
const (
ModuleGate core.M_Modules = "gateway" //gate模块 网关服务模块
ModuleApi core.M_Modules = "api" //gate模块 网关服务模块
ModuleUser core.M_Modules = "user" //gate模块 网关服务模块
ModuleAuth core.M_Modules = "auth" //gate模块 网关服务模块
ModuleChat core.M_Modules = "chat" //chat模块 聊天服务模块
ModuleAgents core.M_Modules = "agents" //agenfts模块 智能体模块
ModuleMcp core.M_Modules = "mcp" //gate模块 网关服务模块
ModuleMusic core.M_Modules = "music" //gate模块 网关服务模块
ModuleAitools core.M_Modules = "aitools" //gate模块 网关服务模块
ModuleEchomeet core.M_Modules = "echomeet" //会议记录模块
ModuleSvcCfg core.M_Modules = "svccfg" //服务配置管理模块(各业务服务装载,接收配置下发并重载本服务 sys 客户端)
ModulePay core.M_Modules = "pay" //gate模块 网关服务模块
ModuleTimer core.M_Modules = "timer" //gate模块 网关服务模块
ModuleAllhelp core.M_Modules = "allhelp" //万能助理模块 定时提醒任务 + 每日聊天总结
ModuleBailian core.M_Modules = "bailian" //百炼设备计量中转模块(半托管License)
ModuleMigu core.M_Modules = "migu" //移动灵犀聊天模块 对外OpenAI兼容接口 内部调咪咕灵犀
ModuleAnalyze core.M_Modules = "analyze" //埋点分析模块 业务侧经 GetModule 取用 上报统计事件
ModuleConsole core.M_Modules = "console" //后台控制面模块 注册各应用+按应用建连+发配置事件
)
const (
Rpc_GatewayHttpRoute core.Rpc_Key = "Rpc_GatewayHttpRoute" //Http网关路由
)
// 数据表名定义处
const (
TableUser = "user" //用户表
TableUserdevice = "userdevice" //用户设备列表
TableRecord = "record" //记录表
TableAgent = "agent" //智能体id
TableMcp = "mcp" //Mcp服务
TableAppConfig = "config" //App自有配置(音乐、OSS等)
TableGlobalConfig = "global_config" //全局第三方服务配置(AI、翻译等,按区域)
TableAppServiceConfig = "app_service_config" //应用×服务的基础设施/运行配置(DSN/Redis/NATS/COS…;启动 seed 自文件、后台可改),存 console 共享库
TableAppModuleConfig = "app_module_config" //应用业务功能配置(登录/短信/邮件/支付…),存"应用业务库"(随部署)、非公共库,密钥字段 AES 加密
// 按应用分离的「第三方服务配置 / Agent 配置」新表(app_name=''为全局默认,'X'为应用X覆盖)。
// 独立于老的 third_svc_config / agent 表,避免影响现有服务接口;均存 console 共享库(postgres)。
TableSvcConfig = "svc_config" //第三方服务配置(按应用;旧 third_svc_config 迁入其全局作用域)
TableSysServiceConfig = "sys_service_config" //平台系统服务配置(对象存储/邮件/翻译,平台自用,独立于面向客户端的 svc_config)
TableSvcRegionOverride = "svc_region_override" //第三方服务区域字段覆盖(按应用;旧 third_svc_region_override 迁入)
TableAgentConfig = "agent_config" //yunyan 自管 Agent 配置(按应用;旧 console agent 表迁入)
TableSvcHealth = "svc_health" //第三方服务巡检结果快照(每 app_name+svc_id+region 一行,巡检器覆盖写)
TableAdmin = "adnim" //后台用户表
TableEchomeetTemplate = "echomeet_template" //模板表
TableEchomeetRecord = "echomeet_record" //会议记录表
TableEchomeetOrch = "echomeet_orch" //会议记录服务编排(引用 svc_config 的服务,按 app_name+region 分层;存 console 共享库)
TableEchomeetOrchSetting = "echomeet_orch_setting" //会议记录编排的作用域级开关(每 app_name+region 一行;如客户端可否指定总结模型)
TableChannelApp = "channelapp" //【已废弃】旧渠道包表(各应用业务库 mysql,主键仅 channel),由 console 主库的 channel_app 取代
TableSolutionProvider = "solution_provider" //方案商数据表(jieli/lanxun/henxuan)
TableBrand = "brand" //品牌商数据表(原厂家)
TableChannel = "channel" //渠道商数据表(挂在品牌商下,id=8位短码;生产/统计/结算的渠道维度)
TableSettlementMonth = "settlement_month" //月结算单表(每 结算月×品牌商×渠道商 一行;存 console 主库)
TableProduct = "product" //产品表
TableProductVersion = "product_version" //产品表版本管理
TableProductionBatch = "production_batch" //生产批次台账表(原出货单)
TableLicense = "license" //授权码分表前缀 license_<pid十六进制>
TableGoods = "goods" //支付商品表
TablePayOrder = "payorder" //支付订单表
TableWakeupVoice = "wakeupvoice" //唤醒语音表
TableUserUseLog = "useruselog" //用户日志
TableUserStatistics = "userstatistics" //用户统计表
// TableAuthCode = "authcode" //授权码表
// TableFactoryDevice = "factorydevice" //厂家设备表
TableUseRecordLog = "uselog" //用户使用统计日志
// app_stat_daily/monthly/yearly/global 四张「App 综合运营统计」表已移除:运营统计整体迁到
// 运营后台(analyze 模块把当日快照经 NATS 推到 console 主库 stats_global_day),app 服务不再产出。
TableConsoleLog = "console_log" //后台操作日志表
TableAdminResLog = "admin_resource_log" //后台账号资源流水(超管→管理员/代理/运营)
TableAllhelpTask = "allhelp_task" //用户定时提醒任务表
TableChatSummary = "chat_summary" //用户每日聊天总结表
TableStatsGlobalDay = "stats_global_day" //平台每日统计表(应用×产品×区域×日)
TableProductStat = "product_stat" //产品激活/绑定统计表(重建统计时全量扫描 userdevice 落库)
TableFactoryPublicCode = "factory_public_code" //厂家公码表(一厂家多码,新用户扫码领奖,user.isgiveaway 判重)
TableAppProduct = "app_product" //应用/产品表(console 主库,SaaS 里一个应用名如 Voitrans,下挂多条区域部署=app_registry)
TableAppRegistry = "app_registry" //应用注册表(console 独立库,一行=一个区域部署;product_id 归属应用、status existing/pending)
TableAppEnvironment = "app_environment" //部署环境/区域表(console 主库,存 SSH 部署目标/镜像仓库/区域基础设施;密钥字段 AES-GCM 加密)
TableConsoleAccount = "console_account" //后台账号表(console 独立库,存账号/bcrypt密码/角色)
TableThirdSvcConfig = "third_svc_config" //第三方服务配置表(JSONB 字段定义 + 默认值,移植自 deep_server)
TableThirdSvcRegionOverride = "third_svc_region_override" //第三方服务区域字段覆盖表(每服务×区域一行,JSONB:值覆盖/区域专属字段/停用字段)
TableThirdSvcTemplate = "third_svc_template" //第三方服务商字段模板表(数据驱动,启动 seed 内置常见服务商)
TableCallTranslatePair = "call_translate_pair" //【已废弃】旧通话翻译语言对表(区域×单语言对×直接拼服务),由 call_translate_rule 取代,代码不再读写
TableCallTranslateRule = "call_translate_rule" //通话翻译规则表(区域×多源/多目标语言×优先级 → agent)
TableChannelAppCfg = "channel_app" //渠道分发配置表(console 主库,按 app_name 作用域;版本/强更/下载地址/支付渠道开关)
TableAppGoods = "app_goods" //应用内购商品配置表(console 主库,按 app_name 作用域;多语言名称/货币/价格存 localname JSON)
)
// NATS 管道 subject 与事件结构统一定义在 comm/nats.go(含 Nats_ConfigEventSubjectPrefix 等)。
// 对象池定义
const (
Pool_UserSession = "Pool_UserSession" //对象此 comm.UserSession
)
// 对象池定义
const (
Redis_Verification = "Verification" //验证码
)
// 缓存数据集名定义(实际 Redis key 经 redissys.RKey 加应用前缀)
const (
Cache_Product = "cache:product" //product 全量缓存(Redis Hash,field=id)
Cache_EchomeetTemplate = "cache:echomeet_template" //echomeet public 公共模板全量缓存(Redis Hash,field=id)
Cache_Brand = "cache:brand" //brand 品牌商全量缓存(Redis Hash,field=id;console 后台设备域引用数据)
Cache_ProductVersion = "cache:product_version" //product_version 全量缓存(Redis Hash,field=版本id;按 productid 内存过滤)
)
// RPC服务接口定义处
const ( //Rpc
Rpc_ModifyAppConifg core.Rpc_Key = "Rpc_ModifyAppConifg" //修改app配置
Rpc_ModifyEchomeetTemplate core.Rpc_Key = "Rpc_ModifyEchomeetTemplate" //修改echomeet公共模板
// 业务功能配置的集群内下发:由 api 服务(业务侧管理入口)扇出给各服务,各服务重载自己持有的 sys 客户端。
Rpc_ReloadModuleConfig core.Rpc_Key = "Rpc_ReloadModuleConfig" //重载本服务的业务功能配置
Rpc_ResetModuleConfig core.Rpc_Key = "Rpc_ResetModuleConfig" //还原某模块为配置文件初始值(仅属主 home 响应)
)
// ModuleConfigOwner 业务功能配置的「yaml 属主」服务名。
//
// yaml 是每服务一份(home.yaml / api.yaml 的 email 段可以不同),而 app_module_config 是应用级一份。
// 故 seed(首次播种) 与 reset(还原初始值) 必须只由一个服务执行,否则各服务会拿各自的 yaml 互相覆盖。
// 现状里也只有 home 在 seed,故属主定为 home;其余服务只「读库 + 热重载」。
const ModuleConfigOwner = "home"
// ModuleConfigServices 需要接收业务功能配置下发的服务名(= 真正持有业务凭据 sys 客户端的服务)。
// 当前 home 持有 email/sms/auth/pay,api 持有 email;gateway/mcp/timer 不持有,扇出给它们纯属噪音。
// 将来某服务开始持有凭据:装上 modules/svccfg + 在此加一行。
var ModuleConfigServices = []string{"home", "api"}