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) }