package initialize import ( "gitea.pena/PenaSide/treasurer/internal/errors" "gitea.pena/PenaSide/treasurer/internal/repository" "go.mongodb.org/mongo-driver/mongo" "go.uber.org/zap" ) type RepositoriesDeps struct { Logger *zap.Logger Database *mongo.Database } type Repositories struct { Payment *repository.PaymentRepository PaymentMethod *repository.PaymentMethodRepository } func NewRepositories(deps RepositoriesDeps) (*Repositories, errors.Error) { paymentRepository, err := repository.NewPaymentRepository(repository.PaymentRepositoryDeps{ Logger: deps.Logger, Collection: deps.Database.Collection("payments"), }) if err != nil { return nil, err } paymentMethod := repository.NewPaymentMethodRepository(repository.PaymentMethodRepositoryDeps{ Logger: deps.Logger, Collection: deps.Database.Collection("payment_methods"), }) return &Repositories{Payment: paymentRepository, PaymentMethod: paymentMethod}, nil }