package wire import ( "with_you/internal/handler" "with_you/internal/pkg/ws" "with_you/internal/repository" "with_you/internal/service" "github.com/google/wire" ) // HandlerSet Handler 层 Provider Set var HandlerSet = wire.NewSet( // 直接使用构造函数的 Handler handler.NewCommentHandler, handler.NewNotificationHandler, handler.NewUploadHandler, handler.NewPushHandler, handler.NewStickerHandler, handler.NewVoteHandler, handler.NewChannelHandler, handler.NewRoleHandler, handler.NewAdminUserHandler, handler.NewAdminPostHandler, handler.NewAdminCommentHandler, handler.NewAdminGroupHandler, handler.NewAdminDashboardHandler, handler.NewAdminLogHandler, handler.NewQRCodeHandler, handler.NewMaterialHandler, handler.NewCallHandler, handler.NewReportHandler, handler.NewAdminReportHandler, handler.NewVerificationHandler, handler.NewAdminProfileAuditHandler, handler.NewPostHandler, // 需要特殊处理的 Handler ProvideUserHandler, ProvideMessageHandler, ProvideSystemMessageHandler, ProvideGroupHandler, ProvideScheduleHandler, ProvideWSHandler, ProvideAdminVerificationHandler, ) func ProvideUserHandler( userService service.UserService, activityService service.UserActivityService, logService *service.LogService, profileAuditService service.UserProfileAuditService, ) *handler.UserHandler { h := handler.NewUserHandler(userService, activityService, logService) h.SetProfileAuditService(profileAuditService) return h } func ProvideMessageHandler( chatService service.ChatService, messageService *service.MessageService, userService service.UserService, groupService service.GroupService, wsHub *ws.Hub, ) *handler.MessageHandler { return handler.NewMessageHandler(chatService, messageService, userService, groupService, wsHub) } // ProvideSystemMessageHandler 提供系统消息处理器 func ProvideSystemMessageHandler( systemMsgService service.SystemMessageService, ) *handler.SystemMessageHandler { return handler.NewSystemMessageHandler(systemMsgService) } // ProvideGroupHandler 提供群组处理器 func ProvideGroupHandler( groupService service.GroupService, userService service.UserService, ) *handler.GroupHandler { return handler.NewGroupHandler(groupService, userService) } // ProvideScheduleHandler 提供课表处理器 func ProvideScheduleHandler( scheduleService service.ScheduleService, scheduleSyncService service.ScheduleSyncService, ) *handler.ScheduleHandler { return handler.NewScheduleHandler(scheduleService, scheduleSyncService) } // ProvideWSHandler 提供WebSocket处理器 func ProvideWSHandler( wsHub *ws.Hub, chatService service.ChatService, groupService service.GroupService, jwtService *service.JWTService, callService service.CallService, userRepo repository.UserRepository, ) *handler.WSHandler { return handler.NewWSHandler(wsHub, chatService, groupService, jwtService, callService, userRepo) } // ProvideAdminVerificationHandler 提供管理端身份认证处理器 func ProvideAdminVerificationHandler( adminVerificationService service.AdminVerificationService, userRepo repository.UserRepository, ) *handler.AdminVerificationHandler { return handler.NewAdminVerificationHandler(adminVerificationService, userRepo) }