import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common' import { ValidateLocaleMiddleware } from '../../middlewares/validate-locale.middleware' import { ConfigRepository, PlanFeatureRepository, SmartfitUnitRepository, SubscriptionSmartfitRepository, SubscriptionTransactionRepository, SubscriptionInstallmentRepository, DiscountCouponRepository, } from '../../repositories' import { AccountService, AppleInAppSubscriptionService, AuthenticationService, CreditsModule, GoogleClientService, GoogleInAppSubscriptionService, OmieService, SubscriptionModule, } from '../../services' import { HttpService } from '../../services/http' import { OmieConfigService } from '../../services/omie/service' import { ConcilliationController, ContractController, InAppController, PaymentMethodController, PlansController, SubscriptionsController, TeleconsultationCreditsController, } from './controllers' import { AppleInApp, AppleCheckSubscription, Concilliation, Contract, GoogleCheckSubscription, GoogleInApp, Plan, SmartfitCheckSubscription, Subscription, TeleconsultationsCredit, PaymentMethod, } from './domain' @Module({ imports: [SubscriptionModule, CreditsModule], controllers: [ ConcilliationController, ContractController, PlansController, SubscriptionsController, TeleconsultationCreditsController, InAppController, PaymentMethodController, ], providers: [ HttpService, AccountService, AuthenticationService, Concilliation, Plan, SubscriptionSmartfitRepository, Subscription, TeleconsultationsCredit, GoogleInApp, GoogleInAppSubscriptionService, GoogleClientService, AppleInApp, ConfigRepository, SmartfitCheckSubscription, AppleInAppSubscriptionService, AppleCheckSubscription, GoogleCheckSubscription, SmartfitUnitRepository, OmieService, OmieConfigService, Contract, SubscriptionTransactionRepository, SubscriptionInstallmentRepository, PlanFeatureRepository, DiscountCouponRepository, PaymentMethod, ], }) export class SubscriptionsModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer.apply(ValidateLocaleMiddleware).forRoutes('/subscriptions/check') } }