From c6a8c66e39e651a54bbbb8c088e9a396ed9be08b Mon Sep 17 00:00:00 2001 From: zerosaturation Date: Mon, 25 May 2026 12:17:29 +0800 Subject: [PATCH] feat: add asset level provider for dependency injection Co-Authored-By: Claude Opus 4.7 --- .../provider/asset_level_provider.go | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 backend/services/assetService/provider/asset_level_provider.go diff --git a/backend/services/assetService/provider/asset_level_provider.go b/backend/services/assetService/provider/asset_level_provider.go new file mode 100644 index 0000000..94e9a30 --- /dev/null +++ b/backend/services/assetService/provider/asset_level_provider.go @@ -0,0 +1,35 @@ +package provider + +import ( + "github.com/topfans/backend/services/assetService/repository" + "github.com/topfans/backend/services/assetService/service" + "github.com/topfans/backend/services/assetService/worker" + "gorm.io/gorm" +) + +type AssetLevelProvider struct { + LevelService service.AssetLevelService + db *gorm.DB +} + +func NewAssetLevelProvider(db *gorm.DB) *AssetLevelProvider { + levelRepo := repository.NewAssetLevelRepository(db) + seasonRepo := repository.NewSeasonRepository(db) + decayConfigRepo := repository.NewSeasonDecayConfigRepository(db) + + levelService := service.NewAssetLevelService(levelRepo, seasonRepo, decayConfigRepo) + + return &AssetLevelProvider{ + LevelService: levelService, + db: db, + } +} + +func (p *AssetLevelProvider) GetLevelService() service.AssetLevelService { + return p.LevelService +} + +func (p *AssetLevelProvider) GetSeasonResetWorker() *worker.SeasonResetWorker { + seasonRepo := repository.NewSeasonRepository(p.db) + return worker.NewSeasonResetWorker(seasonRepo, p.LevelService) +} \ No newline at end of file