generated from PenaSide/GolangTemplate
38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
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"),
|
|
}),
|
|
}
|
|
}
|