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