package initialize import ( "go.mongodb.org/mongo-driver/mongo" "go.uber.org/zap" "gitea.pena/PenaSide/customer/internal/interface/repository" ) type RepositoriesDeps struct { Logger *zap.Logger MongoDB *mongo.Database } type Repositories struct { HealthRepository *repository.HealthRepository AccountRepository *repository.AccountRepository CurrencyRepository *repository.CurrencyRepository HistoryRepository *repository.HistoryRepository } func NewRepositories(deps RepositoriesDeps) *Repositories { return &Repositories{ HealthRepository: repository.NewHealthRepository(deps.MongoDB), AccountRepository: repository.NewAccountRepository(repository.AccountRepositoryDeps{ Logger: deps.Logger, MongoDB: deps.MongoDB.Collection("accounts"), }), CurrencyRepository: repository.NewCurrencyRepository(repository.CurrencyRepositoryDeps{ Logger: deps.Logger, MongoDB: deps.MongoDB.Collection("currency_lists"), }), HistoryRepository: repository.NewHistoryRepository(repository.HistoryRepositoryDeps{ Logger: deps.Logger, MongoDB: deps.MongoDB.Collection("histories"), }), } }