2023-06-22 09:36:43 +00:00
|
|
|
package initialize
|
|
|
|
|
|
|
|
import (
|
|
|
|
"go.uber.org/zap"
|
2024-10-20 13:40:30 +00:00
|
|
|
tb "gopkg.in/tucnak/telebot.v2"
|
2024-11-18 07:23:41 +00:00
|
|
|
"gitea.pena/PenaSide/customer/internal/models"
|
|
|
|
"gitea.pena/PenaSide/customer/internal/service/broker/tariff"
|
|
|
|
"gitea.pena/PenaSide/customer/internal/service/callback"
|
|
|
|
"gitea.pena/PenaSide/customer/internal/service/history"
|
|
|
|
"gitea.pena/PenaSide/customer/internal/service/wallet"
|
2023-06-22 09:36:43 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
type ServicesDeps struct {
|
2024-10-20 13:40:30 +00:00
|
|
|
Logger *zap.Logger
|
|
|
|
Repositories *Repositories
|
|
|
|
Clients *Clients
|
|
|
|
Brokers *Brokers
|
|
|
|
ConfigurationGRPC *models.ConfigurationGRPC
|
|
|
|
Notifier *tb.Bot
|
2024-05-09 18:14:53 +00:00
|
|
|
NotificationChannel int64
|
2024-10-20 13:40:30 +00:00
|
|
|
AdminURL string
|
2023-06-22 09:36:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type Services struct {
|
|
|
|
HistoryService *history.Service
|
|
|
|
WalletService *wallet.Service
|
|
|
|
PaymentCallbackService *callback.PaymentCallbackService
|
2023-07-07 01:57:06 +00:00
|
|
|
TariffBrokerService *tariff.Service
|
2023-06-22 09:36:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func NewServices(deps ServicesDeps) *Services {
|
|
|
|
historyService := history.New(history.Deps{
|
|
|
|
Logger: deps.Logger,
|
|
|
|
Repository: deps.Repositories.HistoryRepository,
|
2023-11-05 13:58:41 +00:00
|
|
|
AuthClient: deps.Clients.AuthClient,
|
2023-06-22 09:36:43 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
walletService := wallet.New(wallet.Deps{
|
2024-02-04 20:20:52 +00:00
|
|
|
Logger: deps.Logger,
|
|
|
|
Repository: deps.Repositories.AccountRepository,
|
|
|
|
CurrencyClient: deps.Clients.CurrencyClient,
|
|
|
|
VerificationClient: deps.Clients.VerificationClient,
|
2024-02-05 08:23:35 +00:00
|
|
|
AuthClient: deps.Clients.AuthClient,
|
2024-02-05 11:13:36 +00:00
|
|
|
MailClient: deps.Clients.MailClient,
|
2024-02-04 20:20:52 +00:00
|
|
|
HistoryService: historyService,
|
2023-06-22 09:36:43 +00:00
|
|
|
})
|
|
|
|
|
2023-07-07 01:57:06 +00:00
|
|
|
tariffBrokerService := tariff.New(tariff.Deps{
|
|
|
|
Logger: deps.Logger,
|
|
|
|
Consumer: deps.Brokers.TariffConsumer,
|
|
|
|
Producer: deps.Brokers.TariffProducer,
|
|
|
|
})
|
|
|
|
|
2023-06-22 09:36:43 +00:00
|
|
|
return &Services{
|
|
|
|
WalletService: walletService,
|
|
|
|
HistoryService: historyService,
|
|
|
|
PaymentCallbackService: callback.NewPaymentCallbackService(callback.PaymentCallbackServiceDeps{
|
|
|
|
Logger: deps.Logger,
|
|
|
|
AccountRepository: deps.Repositories.AccountRepository,
|
|
|
|
WalletService: walletService,
|
|
|
|
HistoryService: historyService,
|
2024-10-20 13:40:30 +00:00
|
|
|
Notifier: deps.Notifier,
|
|
|
|
NotifyChannel: deps.NotificationChannel,
|
|
|
|
AdminURL: deps.AdminURL,
|
2023-06-22 09:36:43 +00:00
|
|
|
}),
|
2023-07-07 01:57:06 +00:00
|
|
|
TariffBrokerService: tariffBrokerService,
|
2023-06-22 09:36:43 +00:00
|
|
|
}
|
|
|
|
}
|