package wire import ( "carrot_bbs/internal/handler" "carrot_bbs/internal/pkg/ws" "carrot_bbs/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 handler.NewUserHandler, handler.NewPostHandler, ProvideMessageHandler, ProvideSystemMessageHandler, ProvideGroupHandler, ProvideScheduleHandler, ProvideWSHandler, ) // ProvideMessageHandler 提供消息处理器 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, ) *handler.WSHandler { return handler.NewWSHandler(wsHub, chatService, groupService, jwtService, callService) }