import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { ThrottlerModule } from '@nestjs/throttler'; import { AuthModule } from './auth/auth.module'; import { UsersModule } from './users/users.module'; import { MappingsModule } from './mappings/mappings.module'; import { CatalogModule } from './catalog/catalog.module'; import { OrdersModule } from './orders/orders.module'; import { InvoicesModule } from './invoices/invoices.module'; import { SubscriptionsModule } from './subscriptions/subscriptions.module'; import { CasesModule } from './cases/cases.module'; import { WebhooksModule } from './webhooks/webhooks.module'; import { VendorsModule } from './vendors/vendors.module'; import { JobsModule } from './jobs/jobs.module'; import { HealthModule } from './health/health.module'; import { PrismaModule } from './common/prisma/prisma.module'; import { AuditModule } from './common/audit/audit.module'; import { RedisModule } from './common/redis/redis.module'; @Module({ imports: [ // Configuration ConfigModule.forRoot({ isGlobal: true, envFilePath: '.env', }), // Rate limiting ThrottlerModule.forRoot([ { ttl: 60000, // 1 minute limit: 100, // 100 requests per minute }, ]), // Core modules PrismaModule, RedisModule, AuditModule, VendorsModule, JobsModule, HealthModule, // Feature modules AuthModule, UsersModule, MappingsModule, CatalogModule, OrdersModule, InvoicesModule, SubscriptionsModule, CasesModule, WebhooksModule, ], }) export class AppModule {}