import { Module } from '@nestjs/common';
import { PrismaModule } from 'src/prisma/prisma.module';
import { EcommerceModule } from 'src/ecommerce/ecommerce.module';
import { NovasisPayClient } from './novasis-pay.client';
import { NovasisPayCobrosService } from './novasis-pay-cobros.service';
import { NovasisPayConfigService } from './novasis-pay-config.service';
import { NovasisPayController } from './novasis-pay.controller';
import { NovasisPayWebhooksController } from './novasis-pay-webhooks.controller';
import { NovasisPayWebhooksService } from './novasis-pay-webhooks.service';

@Module({
  // EcommerceModule aporta EcommercePedidosService: al aprobar un pago de la
  // tienda online, el webhook debe crear el pedido ERP y reservar stock.
  imports: [PrismaModule, EcommerceModule],
  controllers: [NovasisPayController, NovasisPayWebhooksController],
  providers: [
    NovasisPayConfigService,
    NovasisPayClient,
    NovasisPayCobrosService,
    NovasisPayWebhooksService,
  ],
  exports: [NovasisPayConfigService, NovasisPayClient, NovasisPayCobrosService],
})
export class NovasisPayModule {}
