// 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 provider import ( controller2 "github.com/echochat/backend/app/admin/controller" dao2 "github.com/echochat/backend/app/admin/dao" service2 "github.com/echochat/backend/app/admin/service" "github.com/echochat/backend/app/auth/controller" "github.com/echochat/backend/app/auth/dao" "github.com/echochat/backend/app/auth/service" controller3 "github.com/echochat/backend/app/contact/controller" dao3 "github.com/echochat/backend/app/contact/dao" service3 "github.com/echochat/backend/app/contact/service" "github.com/echochat/backend/app/ws" "github.com/echochat/backend/config" "github.com/echochat/backend/pkg/db" ) // Injectors from wire.go: // InitializeApp 初始化整个应用(Wire 自动生成实现) func InitializeApp(cfg *config.Config) (*App, error) { databaseConfig := provideDBConfig(cfg) gormDB, err := db.NewPostgres(databaseConfig) if err != nil { return nil, err } redisConfig := provideRedisConfig(cfg) client, err := db.NewRedis(redisConfig) if err != nil { return nil, err } userDAO := dao.NewUserDAO(gormDB) roleDAO := dao.NewRoleDAO(gormDB) jwtConfig := provideJWTConfig(cfg) tokenStore := service.NewTokenStore(client, jwtConfig) authService := service.NewAuthService(userDAO, roleDAO, jwtConfig, tokenStore) authController := controller.NewAuthController(authService) adminAuthController := controller.NewAdminAuthController(authService) userManageDAO := dao2.NewUserManageDAO(gormDB) userManageService := service2.NewUserManageService(userManageDAO, userDAO, roleDAO) userManageController := controller2.NewUserManageController(userManageService) hub := ws.ProvideHub() pubSub := ws.ProvidePubSub(client, hub) onlineService := ws.ProvideOnlineService(client, hub, pubSub) onlineManageService := service2.NewOnlineManageService(onlineService) onlineController := controller2.NewOnlineController(onlineManageService) contactManageService := service2.NewContactManageService(gormDB) contactManageController := controller2.NewContactManageController(contactManageService) handler := ws.ProvideWSHandler(hub, pubSub, jwtConfig, onlineService) friendshipDAO := dao3.NewFriendshipDAO(gormDB) friendGroupDAO := dao3.NewFriendGroupDAO(gormDB) contactService := service3.NewContactService(friendshipDAO, friendGroupDAO, pubSub) contactController := controller3.NewContactController(contactService) app := NewApp(cfg, gormDB, client, authService, authController, adminAuthController, userManageController, onlineController, contactManageController, handler, hub, pubSub, onlineService, contactController) return app, nil }