import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { APP_GUARD } from '@nestjs/core'; import { ThrottlerGuard, ThrottlerModule } from '@nestjs/throttler'; import { PrismaModule } from './prisma/prisma.module'; import { HealthModule } from './health/health.module'; import { AuditModule } from './audit/audit.module'; import { UsersModule } from './users/users.module'; import { AuthModule } from './auth/auth.module'; import { RolesModule } from './roles/roles.module'; import { ApiariesModule } from './apiaries/apiaries.module'; import { ColoniesModule } from './colonies/colonies.module'; import { QueensModule } from './queens/queens.module'; import { InspectionsModule } from './inspections/inspections.module'; import { TasksModule } from './tasks/tasks.module'; import { VarroaModule } from './varroa/varroa.module'; import { TreatmentsModule } from './treatments/treatments.module'; import { FeedingsModule } from './feedings/feedings.module'; import { HarvestsModule } from './harvests/harvests.module'; import { ExtractionsModule } from './extractions/extractions.module'; import { HoneyBatchesModule } from './honey-batches/honey-batches.module'; import { StorageModule } from './storage/storage.module'; import { DashboardModule } from './dashboard/dashboard.module'; import { SearchModule } from './search/search.module'; import { ExportModule } from './export/export.module'; import { QrModule } from './qr/qr.module'; import { ProductsModule } from './products/products.module'; import { BottlingModule } from './bottling/bottling.module'; import { EquipmentModule } from './equipment/equipment.module'; import { CalendarModule } from './calendar/calendar.module'; import { NotificationsModule } from './notifications/notifications.module'; import { StatisticsModule } from './statistics/statistics.module'; import { WebhooksModule } from './webhooks/webhooks.module'; import { DocumentsModule } from './documents/documents.module'; import { AutomationModule } from './automation/automation.module'; import { LabelTemplatesModule } from './label-templates/label-templates.module'; import { ImportModule } from './import/import.module'; import { PublicModule } from './public/public.module'; import { TaskTemplatesModule } from './task-templates/task-templates.module'; import { SwarmControlModule } from './swarm-control/swarm-control.module'; import { WeatherModule } from './weather/weather.module'; import { ProfileModule } from './profile/profile.module'; import { SiteSettingsModule } from './site-settings/site-settings.module'; import { BackupModule } from './backup/backup.module'; import { JwtAuthGuard } from './auth/guards/jwt-auth.guard'; import { PermissionsGuard } from './auth/guards/permissions.guard'; import { PermissionsModule } from './auth/permissions/permissions.module'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true }), ThrottlerModule.forRoot([{ name: 'default', ttl: 60000, limit: 100 }]), PrismaModule, PermissionsModule, AuditModule, HealthModule, UsersModule, AuthModule, RolesModule, ApiariesModule, ColoniesModule, QueensModule, InspectionsModule, TasksModule, VarroaModule, TreatmentsModule, FeedingsModule, HarvestsModule, ExtractionsModule, HoneyBatchesModule, StorageModule, DashboardModule, SearchModule, ExportModule, QrModule, ProductsModule, BottlingModule, EquipmentModule, CalendarModule, NotificationsModule, StatisticsModule, WebhooksModule, DocumentsModule, AutomationModule, LabelTemplatesModule, ImportModule, PublicModule, TaskTemplatesModule, SwarmControlModule, WeatherModule, ProfileModule, SiteSettingsModule, BackupModule, ], controllers: [], providers: [ { provide: APP_GUARD, useClass: JwtAuthGuard }, { provide: APP_GUARD, useClass: PermissionsGuard }, { provide: APP_GUARD, useClass: ThrottlerGuard }, ], }) export class AppModule {}