2026-03-15 18:17:39 +08:00
|
|
|
// 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 (
|
|
|
|
|
"carrot_bbs/internal/handler"
|
|
|
|
|
"carrot_bbs/internal/repository"
|
|
|
|
|
"carrot_bbs/internal/router"
|
|
|
|
|
"carrot_bbs/internal/service"
|
|
|
|
|
"carrot_bbs/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)
|
|
|
|
|
hub := wire.ProvideSSEHub()
|
|
|
|
|
pushService := wire.ProvidePushService(pushRecordRepository, deviceTokenRepository, messageRepository, hub)
|
|
|
|
|
postRepository := repository.NewPostRepository(db)
|
|
|
|
|
client := wire.ProvideRedisClient(config)
|
|
|
|
|
cache := wire.ProvideCache(config, client)
|
|
|
|
|
systemMessageService := wire.ProvideSystemMessageService(systemNotificationRepository, pushService, userRepository, postRepository, cache)
|
|
|
|
|
emailClient := wire.ProvideEmailClient(config)
|
|
|
|
|
emailService := wire.ProvideEmailService(emailClient)
|
|
|
|
|
userService := wire.ProvideUserService(userRepository, systemMessageService, emailService, cache)
|
|
|
|
|
userActivityRepository := wire.ProvideUserActivityRepository(db, cache)
|
|
|
|
|
userActivityService := wire.ProvideUserActivityService(userActivityRepository)
|
|
|
|
|
openaiClient := wire.ProvideOpenAIClient(config)
|
|
|
|
|
postAIService := wire.ProvidePostAIService(openaiClient)
|
|
|
|
|
transactionManager := wire.ProvideTransactionManager(db)
|
2026-03-20 12:23:28 +08:00
|
|
|
manager := wire.ProvideHookManager()
|
2026-03-15 18:17:39 +08:00
|
|
|
commentRepository := repository.NewCommentRepository(db)
|
2026-03-21 02:53:38 +08:00
|
|
|
moderationHooks := wire.ProvideModerationHooks(manager, postAIService, postRepository, commentRepository, config)
|
|
|
|
|
builtinHooks := wire.ProvideBuiltinHooks(manager)
|
2026-03-24 05:18:30 +08:00
|
|
|
postService := wire.ProvidePostService(postRepository, systemMessageService, postAIService, cache, transactionManager, manager, moderationHooks, builtinHooks)
|
|
|
|
|
commentService := wire.ProvideCommentService(commentRepository, postRepository, systemMessageService, postAIService, cache, manager)
|
2026-03-15 20:38:22 +08:00
|
|
|
operationLogRepository := repository.NewOperationLogRepository(db)
|
|
|
|
|
loginLogRepository := repository.NewLoginLogRepository(db)
|
|
|
|
|
dataChangeLogRepository := repository.NewDataChangeLogRepository(db)
|
|
|
|
|
logger := wire.ProvideLogger()
|
|
|
|
|
asyncLogManager := wire.ProvideAsyncLogManager(db, 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)
|
|
|
|
|
userHandler := wire.ProvideUserHandler(userService, userActivityService, postService, commentService, logService)
|
2026-03-25 00:58:41 +08:00
|
|
|
channelRepository := repository.NewChannelRepository(db)
|
2026-03-25 01:03:34 +08:00
|
|
|
channelService := wire.ProvideChannelService(channelRepository, cache)
|
2026-03-25 00:58:41 +08:00
|
|
|
postHandler := wire.ProvidePostHandler(postService, userService, channelService, logService)
|
2026-03-15 18:17:39 +08:00
|
|
|
commentHandler := handler.NewCommentHandler(commentService)
|
2026-03-25 03:57:40 +08:00
|
|
|
s3Client, err := wire.ProvideS3Client(config)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
uploadService := wire.ProvideUploadService(s3Client, userService)
|
|
|
|
|
chatService := wire.ProvideChatService(db, messageRepository, userRepository, hub, cache, uploadService)
|
|
|
|
|
messageService := wire.ProvideMessageService(db, messageRepository, cache, uploadService)
|
2026-03-15 18:17:39 +08:00
|
|
|
groupRepository := repository.NewGroupRepository(db)
|
|
|
|
|
groupService := wire.ProvideGroupService(db, groupRepository, userRepository, messageRepository, hub, cache)
|
|
|
|
|
messageHandler := wire.ProvideMessageHandler(chatService, messageService, userService, groupService, hub)
|
|
|
|
|
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, systemNotificationRepository, cache)
|
|
|
|
|
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)
|
|
|
|
|
voteHandler := handler.NewVoteHandler(voteService, postService)
|
2026-03-24 22:27:53 +08:00
|
|
|
channelHandler := handler.NewChannelHandler(channelService)
|
2026-03-15 18:17:39 +08:00
|
|
|
scheduleRepository := repository.NewScheduleRepository(db)
|
|
|
|
|
scheduleService := wire.ProvideScheduleService(scheduleRepository)
|
|
|
|
|
server := wire.ProvideGRPCServer(config, logger)
|
|
|
|
|
taskManager := wire.ProvideTaskManager(server)
|
|
|
|
|
scheduleSyncService := wire.ProvideScheduleSyncService(taskManager, scheduleRepository, logger)
|
|
|
|
|
scheduleHandler := wire.ProvideScheduleHandler(scheduleService, scheduleSyncService)
|
|
|
|
|
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)
|
|
|
|
|
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)
|
2026-03-15 20:38:22 +08:00
|
|
|
adminLogHandler := handler.NewAdminLogHandler(operationLogService, loginLogService, dataChangeLogService)
|
2026-03-20 12:23:28 +08:00
|
|
|
qrCodeLoginService := wire.ProvideQRCodeLoginService(client, hub, jwtService, userService, userActivityService, logService)
|
|
|
|
|
qrCodeHandler := handler.NewQRCodeHandler(qrCodeLoginService)
|
2026-03-25 20:58:55 +08:00
|
|
|
materialSubjectRepository := repository.NewMaterialSubjectRepository(db)
|
|
|
|
|
materialFileRepository := repository.NewMaterialFileRepository(db)
|
|
|
|
|
materialService := wire.ProvideMaterialService(materialSubjectRepository, materialFileRepository)
|
|
|
|
|
materialHandler := handler.NewMaterialHandler(materialService)
|
|
|
|
|
router := ProvideRouter(userHandler, postHandler, commentHandler, messageHandler, notificationHandler, uploadHandler, jwtService, pushHandler, systemMessageHandler, groupHandler, stickerHandler, voteHandler, channelHandler, scheduleHandler, roleHandler, adminUserHandler, adminPostHandler, adminCommentHandler, adminGroupHandler, adminDashboardHandler, adminLogHandler, qrCodeHandler, materialHandler, logService, userActivityService, casbinService)
|
2026-03-24 05:18:30 +08:00
|
|
|
hotRankWorker := wire.ProvideHotRankWorker(config, postRepository, cache)
|
|
|
|
|
app := NewApp(config, db, router, pushService, hotRankWorker, server, logger)
|
2026-03-15 18:17:39 +08:00
|
|
|
return app, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// wire.go:
|
|
|
|
|
|
|
|
|
|
// ProvideRouter 提供路由
|
|
|
|
|
func ProvideRouter(
|
|
|
|
|
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,
|
2026-03-24 22:27:53 +08:00
|
|
|
channelHandler *handler.ChannelHandler,
|
2026-03-15 18:17:39 +08:00
|
|
|
scheduleHandler *handler.ScheduleHandler,
|
|
|
|
|
roleHandler *handler.RoleHandler,
|
|
|
|
|
adminUserHandler *handler.AdminUserHandler,
|
|
|
|
|
adminPostHandler *handler.AdminPostHandler,
|
|
|
|
|
adminCommentHandler *handler.AdminCommentHandler,
|
|
|
|
|
adminGroupHandler *handler.AdminGroupHandler,
|
|
|
|
|
adminDashboardHandler *handler.AdminDashboardHandler,
|
2026-03-15 20:38:22 +08:00
|
|
|
adminLogHandler *handler.AdminLogHandler,
|
2026-03-20 12:23:28 +08:00
|
|
|
qrcodeHandler *handler.QRCodeHandler,
|
2026-03-25 20:58:55 +08:00
|
|
|
materialHandler *handler.MaterialHandler,
|
2026-03-15 20:38:22 +08:00
|
|
|
logService *service.LogService,
|
2026-03-15 18:17:39 +08:00
|
|
|
activityService service.UserActivityService,
|
|
|
|
|
casbinService service.CasbinService,
|
|
|
|
|
) *router.Router {
|
|
|
|
|
return router.New(
|
|
|
|
|
userHandler,
|
|
|
|
|
postHandler,
|
|
|
|
|
commentHandler,
|
|
|
|
|
messageHandler,
|
|
|
|
|
notificationHandler,
|
|
|
|
|
uploadHandler,
|
|
|
|
|
jwtService,
|
|
|
|
|
pushHandler,
|
|
|
|
|
systemMessageHandler,
|
|
|
|
|
groupHandler,
|
|
|
|
|
stickerHandler,
|
|
|
|
|
voteHandler,
|
2026-03-24 22:27:53 +08:00
|
|
|
channelHandler,
|
2026-03-15 18:17:39 +08:00
|
|
|
scheduleHandler,
|
|
|
|
|
roleHandler,
|
|
|
|
|
adminUserHandler,
|
|
|
|
|
adminPostHandler,
|
|
|
|
|
adminCommentHandler,
|
|
|
|
|
adminGroupHandler,
|
|
|
|
|
adminDashboardHandler,
|
2026-03-15 20:38:22 +08:00
|
|
|
adminLogHandler,
|
2026-03-20 12:23:28 +08:00
|
|
|
qrcodeHandler,
|
2026-03-25 20:58:55 +08:00
|
|
|
materialHandler,
|
2026-03-15 20:38:22 +08:00
|
|
|
logService,
|
2026-03-15 18:17:39 +08:00
|
|
|
activityService,
|
|
|
|
|
casbinService,
|
|
|
|
|
)
|
|
|
|
|
}
|