import { Module } from '@nestjs/common';
import { ConfigOperativaModule } from './config-operativa/config-operativa.module';
import { APP_GUARD } from '@nestjs/core';
import { ScheduleModule } from '@nestjs/schedule';
import { ThrottlerGuard, ThrottlerModule } from '@nestjs/throttler';
import { CatalogoModule } from './catalogo/catalogo.module';
import { ErpReadonlyModule } from './erp-readonly/erp-readonly.module';
import { HealthController } from './health/health.controller';
import { PrismaModule } from './prisma/prisma.module';
import { ReporteModule } from './reporte/reporte.module';
import { SesionController } from './sesion/sesion.controller';
import { SesionModule } from './sesion/sesion.module';
import { TicketsModule } from './tickets/tickets.module';

@Module({
  imports: [
    ConfigOperativaModule,
    ThrottlerModule.forRoot([{ ttl: 60_000, limit: 60 }]),
    ScheduleModule.forRoot(),
    PrismaModule,
    ErpReadonlyModule,
    SesionModule,
    CatalogoModule,
    TicketsModule,
    ReporteModule,
  ],
  controllers: [HealthController, SesionController],
  providers: [{ provide: APP_GUARD, useClass: ThrottlerGuard }],
})
export class AppModule {}
