import { Module } from "@nestjs/common";
import { HttpModule } from "@nestjs/axios";
import { PaymentsController } from "./payments.controller";
import { PaymentsService } from "./payments.service";
import { InternalPaymentsController } from "./internal-payments.controller";
import { PaymentClientService } from "./payment-client.service";
import { ServiceAuthGuard } from "../../common/guards/service-auth.guard";
import { SeatsModule } from "../seats/seats.module";
import { TicketsModule } from "../tickets/tickets.module";

/**
 * Post-cutover (docs/payment-service phase 6): provider gateways and webhook handlers live in
 * apps/edr-payment-api. This module keeps domain validation, the WALLET flow, the payment
 * client, and the idempotent mark-paid consumer.
 */
@Module({
  imports: [
    SeatsModule,
    TicketsModule,
    HttpModule.register({ timeout: 10_000 }),
  ],
  controllers: [PaymentsController, InternalPaymentsController],
  providers: [PaymentsService, PaymentClientService, ServiceAuthGuard],
})
export class PaymentsModule {}
