import { Module } from '@nestjs/common';
import { ThrottlerModule, ThrottlerGuard } from '@nestjs/throttler';
import { APP_GUARD } from '@nestjs/core';
import { PrismaModule } from './prisma/prisma.module';
import { AuthModule } from './auth/auth.module';
import { UsersModule } from './users/users.module';
import { PoliModule } from './poli/poli.module';
import { DoctorsModule } from './doctors/doctors.module';
import { ScheduleModule } from './schedule/schedule.module';
import { ServicesModule } from './services/services.module';
import { NewsModule } from './news/news.module';
import { GalleryModule } from './gallery/gallery.module';
import { AnnouncementsModule } from './announcements/announcements.module';
import { BannersModule } from './banners/banners.module';
import { BedRoomsModule } from './bed-rooms/bed-rooms.module';
import { ProfileModule } from './profile/profile.module';
import { ContactsModule } from './contacts/contacts.module';
import { ServiceStandardsModule } from './service-standards/service-standards.module';
import { UploadModule } from './upload/upload.module';

@Module({
  imports: [
    ThrottlerModule.forRoot([{ ttl: 60000, limit: 100 }]),
    PrismaModule,
    AuthModule,
    UsersModule,
    PoliModule,
    DoctorsModule,
    ScheduleModule,
    ServicesModule,
    NewsModule,
    GalleryModule,
    AnnouncementsModule,
    BannersModule,
    BedRoomsModule,
    ProfileModule,
    ContactsModule,
    ServiceStandardsModule,
    UploadModule,
  ],
  providers: [
    {
      provide: APP_GUARD,
      useClass: ThrottlerGuard,
    },
  ],
})
export class AppModule {}
