//go:build wireinject // +build wireinject package wire import ( "context" "opencatd-open/team/dao" handler "opencatd-open/team/handler/team" "opencatd-open/team/service" "github.com/google/wire" "gorm.io/gorm" ) // 定义 provider set var userSet = wire.NewSet( dao.NewUserDAO, wire.Bind(new(dao.UserRepository), new(*dao.UserDAO)), service.NewUserService, ) var keySet = wire.NewSet( dao.NewApiKeyDAO, wire.Bind(new(dao.ApiKeyRepository), new(*dao.ApiKeyDAO)), service.NewApiKeyService, ) var tokenSet = wire.NewSet( dao.NewTokenDAO, wire.Bind(new(dao.TokenRepository), new(*dao.TokenDAO)), service.NewTokenService, ) var usageSet = wire.NewSet( dao.NewUsageDAO, wire.Bind(new(dao.UsageRepository), new(*dao.UsageDAO)), dao.NewDailyUsageDAO, wire.Bind(new(dao.DailyUsageRepository), new(*dao.DailyUsageDAO)), service.NewUsageService, ) // 初始化 TeamHandler func InitTeamHandler(ctx context.Context, db *gorm.DB) (*handler.TeamHandler, error) { wire.Build(userSet, keySet, tokenSet, usageSet, handler.NewTeamHandler) return nil, nil }