package auth import ( "log" "gofaster/internal/auth/controller" "gofaster/internal/auth/repository" "gofaster/internal/auth/service" "gofaster/internal/core" "gofaster/internal/shared/database" ) // Module 认证模块 type Module struct { userController *controller.UserController authController *controller.AuthController passwordController *controller.PasswordController } // NewModule 创建新的认证模块 func NewModule() *Module { return &Module{} } // Start 启动模块 func (m *Module) Start(cfg interface{}, db *database.Database) error { // 初始化仓库 userRepo := repository.NewUserRepository(db.DB) passwordPolicyRepo := repository.NewPasswordPolicyRepository(db.DB) passwordHistoryRepo := repository.NewPasswordHistoryRepository(db.DB) passwordResetRepo := repository.NewPasswordResetRepository(db.DB) // 初始化服务 userService := service.NewUserService(userRepo) authService := service.NewAuthService(userRepo) passwordService := service.NewPasswordService( userRepo, passwordPolicyRepo, passwordHistoryRepo, passwordResetRepo, ) // 初始化控制器 m.userController = controller.NewUserController(userService) m.authController = controller.NewAuthController(authService) m.passwordController = controller.NewPasswordController(passwordService, userService) log.Printf("✅ 认证模块初始化完成") return nil } // Stop 停止模块 func (m *Module) Stop() error { return nil } // RegisterRoutes 注册路由 func (m *Module) RegisterRoutes(router interface{}) { // 这里应该注册具体的路由 // 暂时留空,由具体的路由文件处理 } // GetName 获取模块名称 func (m *Module) GetName() string { return "auth" }