35 lines
1.0 KiB
Go
35 lines
1.0 KiB
Go
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)
|
|
} |