Merge pull request 'feat: 添加 PostgreSQL 服务并挂载数据库迁移脚本' #101

Merged
huanghaosheng merged 55 commits from develop into main 2026-06-14 19:25:37 +08:00
Showing only changes of commit 9aaed88cc1 - Show all commits

View File

@@ -12,6 +12,7 @@ import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/hhs/camtalk/internal/api" "github.com/hhs/camtalk/internal/api"
"github.com/hhs/camtalk/internal/auth"
"github.com/hhs/camtalk/internal/ai/llm" "github.com/hhs/camtalk/internal/ai/llm"
"github.com/hhs/camtalk/internal/ai/stt" "github.com/hhs/camtalk/internal/ai/stt"
"github.com/hhs/camtalk/internal/ai/tts" "github.com/hhs/camtalk/internal/ai/tts"
@@ -60,6 +61,10 @@ func main() {
_ = pool _ = pool
} }
// 初始化 UserRepository内存模式用于无 DB 场景)
var userRepo store.UserRepository
userRepo = store.NewMemUserRepository()
// 初始化 Session ManagerMVP 默认内存实现) // 初始化 Session ManagerMVP 默认内存实现)
var sessionMgr session.Manager var sessionMgr session.Manager
// TODO: 当 Redis 配置非空时切换为 RedisManager // TODO: 当 Redis 配置非空时切换为 RedisManager
@@ -105,6 +110,14 @@ func main() {
// 初始化 Orchestrator // 初始化 Orchestrator
orch := orchestrator.New(sttService, llmService, ttsService, sessionMgr, cfg) orch := orchestrator.New(sttService, llmService, ttsService, sessionMgr, cfg)
// 初始化认证服务
tokenMgr := auth.NewTokenManager(
cfg.Auth.JWTSecret,
time.Duration(cfg.Auth.AccessTTL)*time.Minute,
time.Duration(cfg.Auth.RefreshTTL)*time.Minute,
)
authService := auth.NewAuthService(tokenMgr, userRepo)
// Gin 模式 // Gin 模式
if cfg.App.Env == "prod" { if cfg.App.Env == "prod" {
gin.SetMode(gin.ReleaseMode) gin.SetMode(gin.ReleaseMode)
@@ -123,6 +136,10 @@ func main() {
sessionHandler := api.NewSessionHandler(sessionMgr) sessionHandler := api.NewSessionHandler(sessionMgr)
sessionHandler.RegisterRoutes(apiGroup) sessionHandler.RegisterRoutes(apiGroup)
// Auth REST 端点
authHandler := api.NewAuthHandler(authService, tokenMgr)
authHandler.RegisterRoutes(apiGroup)
// WebSocket // WebSocket
r.GET("/ws", ws.ServeWS(sessionMgr, orch, cfg)) r.GET("/ws", ws.ServeWS(sessionMgr, orch, cfg))