// Code generated by Wire. DO NOT EDIT. //go:generate go run -mod=mod github.com/google/wire/cmd/wire //go:build !wireinject // +build !wireinject package main import ( "with_you/internal/handler" "with_you/internal/repository" "with_you/internal/router" "with_you/internal/service" "with_you/internal/wire" ) // Injectors from wire.go: // InitializeApp 初始化应用程序 func InitializeApp() (*App, error) { config, err := wire.ProvideConfig() if err != nil { return nil, err } db, err := wire.ProvideDB(config) if err != nil { return nil, err } userRepository := repository.NewUserRepository(db) systemNotificationRepository := repository.NewSystemNotificationRepository(db) pushRecordRepository := repository.NewPushRecordRepository(db) deviceTokenRepository := repository.NewDeviceTokenRepository(db) messageRepository := repository.NewMessageRepository(db) client := wire.ProvideRedisClient(config) messagePublisher := wire.ProvideWSMessagePublisher(config, client) logger := wire.ProvideLogger() jpushClient := wire.ProvideJPushClient(config, logger) pushService := wire.ProvidePushService(pushRecordRepository, deviceTokenRepository, messageRepository, messagePublisher, jpushClient) postRepository := repository.NewPostRepository(db) cache := wire.ProvideCache(config, client) systemMessageService := wire.ProvideSystemMessageService(systemNotificationRepository, pushService, userRepository, postRepository, cache) emailClient := wire.ProvideEmailClient(config) emailService := wire.ProvideEmailService(emailClient) operationLogRepository := repository.NewOperationLogRepository(db) loginLogRepository := repository.NewLoginLogRepository(db) dataChangeLogRepository := repository.NewDataChangeLogRepository(db) asyncLogManager := wire.ProvideAsyncLogManager(operationLogRepository, loginLogRepository, dataChangeLogRepository, logger, config) operationLogService := wire.ProvideOperationLogService(asyncLogManager, operationLogRepository) loginLogService := wire.ProvideLoginLogService(asyncLogManager, loginLogRepository) dataChangeLogService := wire.ProvideDataChangeLogService(asyncLogManager, dataChangeLogRepository) logService := wire.ProvideLogService(operationLogService, loginLogService, dataChangeLogService) userService := wire.ProvideUserService(userRepository, systemMessageService, emailService, cache, logService) userActivityRepository := wire.ProvideUserActivityRepository(db, cache) userActivityService := wire.ProvideUserActivityService(userActivityRepository) userProfileAuditRepository := repository.NewUserProfileAuditRepository(db) manager := wire.ProvideHookManager() openaiClient := wire.ProvideOpenAIClient(config) tencentClient := wire.ProvideTencentClient(config) postAIService := wire.ProvidePostAIService(openaiClient, tencentClient, config) commentRepository := repository.NewCommentRepository(db) sensitiveWordRepository := repository.NewSensitiveWordRepository(db) sensitiveService := wire.ProvideSensitiveService(sensitiveWordRepository, client, config) moderationHooks := wire.ProvideModerationHooks(manager, postAIService, postRepository, commentRepository, userRepository, sensitiveService, config) userProfileAuditService := wire.ProvideUserProfileAuditService(userProfileAuditRepository, userRepository, manager, moderationHooks) userHandler := wire.ProvideUserHandler(userService, userActivityService, logService, userProfileAuditService) transactionManager := wire.ProvideTransactionManager(db) builtinHooks := wire.ProvideBuiltinHooks(manager) postService := wire.ProvidePostService(postRepository, systemMessageService, postAIService, cache, transactionManager, manager, moderationHooks, builtinHooks, logService) postRefRepository := repository.NewPostRefRepository(db) postRefService := wire.ProvidePostRefService(postRefRepository, postRepository) channelRepository := repository.NewChannelRepository(db) channelService := wire.ProvideChannelService(channelRepository, cache) postHandler := handler.NewPostHandler(postService, postRefService, userService, channelService) commentService := wire.ProvideCommentService(commentRepository, postRepository, systemMessageService, postAIService, cache, manager, logService) commentHandler := handler.NewCommentHandler(commentService) s3Client, err := wire.ProvideS3Client(config) if err != nil { return nil, err } uploadService := wire.ProvideUploadService(s3Client, userService) seqBufferManager := wire.ProvideSeqBufferManager(config, client, cache) pushWorker := wire.ProvidePushWorker(config, client, messagePublisher, pushService, messageRepository, userRepository) conversationVersionLogRepository := repository.NewConversationVersionLogRepository(db) chatService := wire.ProvideChatService(messageRepository, userRepository, messagePublisher, cache, uploadService, pushService, seqBufferManager, pushWorker, client, conversationVersionLogRepository, config) messageService := wire.ProvideMessageService(messageRepository, cache, uploadService) groupRepository := repository.NewGroupRepository(db) groupJoinRequestRepository := repository.NewGroupJoinRequestRepository(db) groupService := wire.ProvideGroupService(groupRepository, userRepository, messageRepository, groupJoinRequestRepository, systemNotificationRepository, messagePublisher, cache) messageHandler := wire.ProvideMessageHandler(chatService, messageService, userService, groupService, messagePublisher) notificationRepository := repository.NewNotificationRepository(db) notificationService := wire.ProvideNotificationService(notificationRepository, cache) notificationHandler := handler.NewNotificationHandler(notificationService) uploadHandler := handler.NewUploadHandler(uploadService) jwtService := wire.ProvideJWTService(config) pushHandler := handler.NewPushHandler(pushService) systemMessageHandler := wire.ProvideSystemMessageHandler(systemMessageService) groupHandler := wire.ProvideGroupHandler(groupService, userService) stickerRepository := repository.NewStickerRepository(db) stickerService := wire.ProvideStickerService(stickerRepository) stickerHandler := handler.NewStickerHandler(stickerService) voteRepository := repository.NewVoteRepository(db) voteService := wire.ProvideVoteService(voteRepository, postRepository, cache, postAIService, systemMessageService, manager, logService) voteHandler := handler.NewVoteHandler(voteService, postService) channelHandler := handler.NewChannelHandler(channelService) scheduleRepository := repository.NewScheduleRepository(db) scheduleService := wire.ProvideScheduleService(scheduleRepository) runnerHub := wire.ProvideRunnerHub(logger) taskManager := wire.ProvideTaskManager(runnerHub, logger) scheduleSyncService := wire.ProvideScheduleSyncService(taskManager, scheduleRepository, logger) scheduleHandler := wire.ProvideScheduleHandler(scheduleService, scheduleSyncService) gradeRepository := repository.NewGradeRepository(db) gradeSyncService := wire.ProvideGradeSyncService(taskManager, gradeRepository, logger) gradeHandler := handler.NewGradeHandler(gradeSyncService, gradeRepository) examRepository := repository.NewExamRepository(db) examSyncService := wire.ProvideExamSyncService(taskManager, examRepository, logger) examHandler := handler.NewExamHandler(examSyncService, examRepository) roleRepository := wire.ProvideRoleRepository(db) enforcer := wire.ProvideCasbinEnforcer(config, db) casbinService := wire.ProvideCasbinService(enforcer, cache, roleRepository, config) roleService := wire.ProvideRoleService(roleRepository, casbinService) roleHandler := handler.NewRoleHandler(roleService) adminUserService := wire.ProvideAdminUserService(userRepository) adminUserHandler := handler.NewAdminUserHandler(adminUserService) adminPostService := wire.ProvideAdminPostService(postRepository, cache, logService) adminPostHandler := handler.NewAdminPostHandler(adminPostService) adminCommentService := wire.ProvideAdminCommentService(commentRepository, postRepository) adminCommentHandler := handler.NewAdminCommentHandler(adminCommentService) adminGroupService := wire.ProvideAdminGroupService(groupRepository, userRepository) adminGroupHandler := handler.NewAdminGroupHandler(adminGroupService) adminDashboardService := wire.ProvideAdminDashboardService(db, userRepository, postRepository, commentRepository, groupRepository, userActivityRepository) adminDashboardHandler := handler.NewAdminDashboardHandler(adminDashboardService) adminLogHandler := handler.NewAdminLogHandler(operationLogService, loginLogService, dataChangeLogService) qrCodeLoginService := wire.ProvideQRCodeLoginService(client, messagePublisher, jwtService, userService, userActivityService, logService) qrCodeHandler := handler.NewQRCodeHandler(qrCodeLoginService) materialSubjectRepository := repository.NewMaterialSubjectRepository(db) materialFileRepository := repository.NewMaterialFileRepository(db) materialService := wire.ProvideMaterialService(materialSubjectRepository, materialFileRepository) materialHandler := handler.NewMaterialHandler(materialService) callRepository := repository.NewCallRepository(db) callService := wire.ProvideCallService(callRepository, messagePublisher, config, db, client, groupService) callHandler := handler.NewCallHandler(callService) reportRepository := repository.NewReportRepository(db) reportService := wire.ProvideReportService(reportRepository, postRepository, commentRepository, messageRepository, userRepository, systemNotificationRepository, pushService, transactionManager, operationLogService, config) reportHandler := handler.NewReportHandler(reportService) adminReportService := wire.ProvideAdminReportService(reportRepository, postRepository, commentRepository, messageRepository, userRepository, systemNotificationRepository, pushService, transactionManager, operationLogService) adminReportHandler := handler.NewAdminReportHandler(adminReportService) verificationRepository := repository.NewVerificationRepository(db) verificationService := wire.ProvideVerificationService(verificationRepository, userRepository) verificationHandler := handler.NewVerificationHandler(verificationService) adminVerificationService := wire.ProvideAdminVerificationService(verificationRepository, userRepository) adminVerificationHandler := wire.ProvideAdminVerificationHandler(adminVerificationService, userRepository) adminProfileAuditHandler := handler.NewAdminProfileAuditHandler(userProfileAuditService) setupService := wire.ProvideSetupService(userRepository, roleRepository, casbinService, config) setupHandler := wire.ProvideSetupHandler(setupService) tradeRepository := repository.NewTradeRepository(db) tradeService := wire.ProvideTradeService(tradeRepository) tradeHandler := handler.NewTradeHandler(tradeService) wsHandler := wire.ProvideWSHandler(messagePublisher, chatService, groupService, jwtService, callService, userRepository) liveKitService := wire.ProvideLiveKitService(config, logger) liveKitHandler := wire.ProvideLiveKitHandler(liveKitService, callService, config, logger) router := ProvideRouter(userRepository, userHandler, postHandler, commentHandler, messageHandler, notificationHandler, uploadHandler, jwtService, pushHandler, systemMessageHandler, groupHandler, stickerHandler, voteHandler, channelHandler, scheduleHandler, gradeHandler, examHandler, roleHandler, adminUserHandler, adminPostHandler, adminCommentHandler, adminGroupHandler, adminDashboardHandler, adminLogHandler, qrCodeHandler, materialHandler, callHandler, reportHandler, adminReportHandler, verificationHandler, adminVerificationHandler, adminProfileAuditHandler, setupHandler, tradeHandler, logService, userActivityService, casbinService, wsHandler, liveKitHandler) hotRankWorker := wire.ProvideHotRankWorker(config, postRepository, channelRepository, cache, client) server := wire.ProvideGRPCServer(config, logger, runnerHub) runnerRegistry := wire.ProvideRunnerRegistry(config, client) taskDispatcher := wire.ProvideTaskDispatcher(runnerHub, runnerRegistry, config, client, logger) app := NewApp(config, db, router, pushService, hotRankWorker, server, messagePublisher, taskDispatcher, logger, pushWorker) return app, nil } // wire.go: // ProvideRouter 提供路由 func ProvideRouter( userRepo repository.UserRepository, userHandler *handler.UserHandler, postHandler *handler.PostHandler, commentHandler *handler.CommentHandler, messageHandler *handler.MessageHandler, notificationHandler *handler.NotificationHandler, uploadHandler *handler.UploadHandler, jwtService *service.JWTService, pushHandler *handler.PushHandler, systemMessageHandler *handler.SystemMessageHandler, groupHandler *handler.GroupHandler, stickerHandler *handler.StickerHandler, voteHandler *handler.VoteHandler, channelHandler *handler.ChannelHandler, scheduleHandler *handler.ScheduleHandler, gradeHandler *handler.GradeHandler, examHandler *handler.ExamHandler, roleHandler *handler.RoleHandler, adminUserHandler *handler.AdminUserHandler, adminPostHandler *handler.AdminPostHandler, adminCommentHandler *handler.AdminCommentHandler, adminGroupHandler *handler.AdminGroupHandler, adminDashboardHandler *handler.AdminDashboardHandler, adminLogHandler *handler.AdminLogHandler, qrcodeHandler *handler.QRCodeHandler, materialHandler *handler.MaterialHandler, callHandler *handler.CallHandler, reportHandler *handler.ReportHandler, adminReportHandler *handler.AdminReportHandler, verificationHandler *handler.VerificationHandler, adminVerificationHandler *handler.AdminVerificationHandler, adminProfileAuditHandler *handler.AdminProfileAuditHandler, setupHandler *handler.SetupHandler, tradeHandler *handler.TradeHandler, logService *service.LogService, activityService service.UserActivityService, casbinService service.CasbinService, wsHandler *handler.WSHandler, liveKitHandler *handler.LiveKitHandler, ) *router.Router { return router.New(router.RouterDeps{ UserRepo: userRepo, UserHandler: userHandler, PostHandler: postHandler, CommentHandler: commentHandler, MessageHandler: messageHandler, NotificationHandler: notificationHandler, UploadHandler: uploadHandler, JWTService: jwtService, PushHandler: pushHandler, SystemMessageHandler: systemMessageHandler, GroupHandler: groupHandler, StickerHandler: stickerHandler, VoteHandler: voteHandler, ChannelHandler: channelHandler, ScheduleHandler: scheduleHandler, GradeHandler: gradeHandler, ExamHandler: examHandler, RoleHandler: roleHandler, AdminUserHandler: adminUserHandler, AdminPostHandler: adminPostHandler, AdminCommentHandler: adminCommentHandler, AdminGroupHandler: adminGroupHandler, AdminDashboardHandler: adminDashboardHandler, AdminLogHandler: adminLogHandler, QRCodeHandler: qrcodeHandler, MaterialHandler: materialHandler, CallHandler: callHandler, LiveKitHandler: liveKitHandler, ReportHandler: reportHandler, AdminReportHandler: adminReportHandler, VerificationHandler: verificationHandler, AdminVerificationHandler: adminVerificationHandler, AdminProfileAuditHandler: adminProfileAuditHandler, SetupHandler: setupHandler, TradeHandler: tradeHandler, LogService: logService, ActivityService: activityService, CasbinService: casbinService, WSHandler: wsHandler, }) }