// 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 ( "github.com/go-kratos/kratos/v3" "kra/internal/biz" "kra/internal/conf" "kra/internal/data" "kra/internal/server" "kra/internal/server/handler" "kra/internal/service" "kra/internal/worker" "log/slog" ) import ( _ "go.uber.org/automaxprocs" ) // Injectors from wire.go: // wireApp init kratos application. func wireApp(confServer *conf.Server, runtime *conf.Runtime, logger *slog.Logger) (*kratos.App, func(), error) { dataData, cleanup, err := data.NewData(runtime) if err != nil { return nil, nil, err } accessRepo := data.NewAccessRepo(dataData) accessUsecase := biz.NewAccessUsecase(accessRepo) accessService := service.NewAccessService(accessUsecase, runtime) authority := handler.NewAuthority(accessService) menuRepo := data.NewMenuRepo(dataData) menuUsecase := biz.NewMenuUsecase(menuRepo) menuService := service.NewMenuService(menuUsecase) menu := handler.NewMenu(menuService) api := handler.NewAPI(accessService) permission := handler.NewPermission(accessService) organizationRepo := data.NewOrganizationRepo(dataData) organizationUsecase := biz.NewOrganizationUsecase(organizationRepo) organizationService := service.NewOrganizationService(organizationUsecase) organization := handler.NewOrganization(organizationService) announcementRepo := data.NewAnnouncementRepo(dataData) announcementUsecase := biz.NewAnnouncementUsecase(announcementRepo) announcementService := service.NewAnnouncementService(announcementUsecase) announcement := handler.NewAnnouncement(announcementService) emailRepo := data.NewEmailRepo(runtime) emailUsecase := biz.NewEmailUsecase(emailRepo) emailService := service.NewEmailService(emailUsecase) email := handler.NewEmail(emailService) taskRepo := data.NewTaskRepo(dataData) taskUsecase := biz.NewTaskUsecase(taskRepo) taskService := service.NewTaskService(taskUsecase) mediaRepo := data.NewMediaRepo(dataData) fileStorage, err := data.NewFileStorage(dataData) if err != nil { cleanup() return nil, nil, err } mediaUsecase := biz.NewMediaUsecase(mediaRepo, fileStorage) taskExecutor := worker.NewTaskExecutor(taskUsecase, mediaUsecase, runtime) taskScheduler := worker.NewTaskScheduler(taskUsecase, taskExecutor, logger) task := handler.NewTask(taskService, taskScheduler) mediaService := service.NewMediaService(mediaUsecase, runtime) media := handler.NewMedia(mediaService) auditRepo := data.NewAuditRepo(dataData) auditUsecase := biz.NewAuditUsecase(auditRepo) auditService := service.NewAuditService(auditUsecase) audit := handler.NewAudit(auditService) securityRepo := data.NewSecurityRepo(dataData) securityUsecase := biz.NewSecurityUsecase(securityRepo) cache := data.NewCache(dataData) apiTokenRepo := data.NewAPITokenRepo(dataData) tokenUsecase := biz.NewTokenUsecase(apiTokenRepo) tokenService := service.NewTokenService(tokenUsecase, runtime) securityService := service.NewSecurityService(securityUsecase, runtime, cache, tokenService) exportRepo := data.NewExportRepo(dataData) exportUsecase := biz.NewExportUsecase(exportRepo) exportService := service.NewExportService(exportUsecase) export := handler.NewExport(securityService, exportService) versionRepo := data.NewVersionRepo(dataData) versionUsecase := biz.NewVersionUsecase(versionRepo) versionService := service.NewVersionService(versionUsecase) version := handler.NewVersion(versionService) dictionaryRepo := data.NewDictionaryRepo(dataData) dictionaryUsecase := biz.NewDictionaryUsecase(dictionaryRepo) dictionaryService := service.NewDictionaryService(dictionaryUsecase) dictionary := handler.NewDictionary(dictionaryService) parameterRepo := data.NewParameterRepo(dataData) parameterUsecase := biz.NewParameterUsecase(parameterRepo) parameterService := service.NewParameterService(parameterUsecase) parameter := handler.NewParameter(parameterService) apiToken := handler.NewAPIToken(tokenService) initializationRepo := data.NewInitializationRepo(dataData) systemConfigUsecase := biz.NewSystemConfigUsecase(initializationRepo) systemConfigService := service.NewSystemConfigService(systemConfigUsecase, runtime) systemConfig := handler.NewSystemConfig(systemConfigService, securityService, taskScheduler) userRepo := data.NewUserRepo(dataData) userUsecase := biz.NewUserUsecase(userRepo) authService := service.NewAuthService(userUsecase, runtime, securityService) public := handler.NewPublic(runtime, authService, systemConfigService, securityService, auditService, taskScheduler) userService := service.NewUserService(userUsecase, securityService) user := handler.NewUser(userService, authService) navigation := handler.NewNavigation(userService) session := handler.NewSession(tokenService) engine := server.NewGinEngine(runtime, accessService, authority, menu, api, permission, organization, announcement, email, task, media, audit, export, version, dictionary, parameter, apiToken, systemConfig, public, user, navigation, session, securityService, tokenService, auditService, logger) httpServer := server.NewGinServer(confServer, engine) app := newApp(logger, httpServer, taskScheduler) return app, func() { cleanup() }, nil }