import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import config from './config'; import { AuthenticationModule } from './auth/auth.module'; import { UserModule } from './users/user.module'; import { GroupModule } from './group/group.module'; import { DeviceModule } from './device/device.module'; import { UserDevicePermissionModule } from './user-device-permission/user-device-permission.module'; import { CommunityModule } from './community/community.module'; import { SeederModule } from '@app/common/seed/seeder.module'; import { UserNotificationModule } from './user-notification/user-notification.module'; import { DeviceMessagesSubscriptionModule } from './device-messages/device-messages.module'; import { SceneModule } from './scene/scene.module'; import { DoorLockModule } from './door-lock/door.lock.module'; import { APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core'; import { LoggingInterceptor } from './interceptors/logging.interceptor'; import { AutomationModule } from './automation/automation.module'; import { RegionModule } from './region/region.module'; import { TimeZoneModule } from './timezone/timezone.module'; import { VisitorPasswordModule } from './vistor-password/visitor-password.module'; import { ScheduleModule } from './schedule/schedule.module'; import { SpaceModule } from './space/space.module'; import { ProductModule } from './product'; import { ProjectModule } from './project'; import { SpaceModelModule } from './space-model'; import { InviteUserModule } from './invite-user/invite-user.module'; import { PermissionModule } from './permission/permission.module'; import { RoleModule } from './role/role.module'; import { TermsConditionsModule } from './terms-conditions/terms-conditions.module'; import { PrivacyPolicyModule } from './privacy-policy/privacy-policy.module'; import { TagModule } from './tags/tags.module'; import { ClientModule } from './client/client.module'; import { DeviceCommissionModule } from './commission-device/commission-device.module'; import { PowerClampModule } from './power-clamp/power-clamp.module'; import { WinstonModule } from 'nest-winston'; import { ThrottlerGuard, ThrottlerModule } from '@nestjs/throttler'; import { HealthModule } from './health/health.module'; import { winstonLoggerOptions } from '../libs/common/src/logger/services/winston.logger'; import { OccupancyModule } from './occupancy/occupancy.module'; import { WeatherModule } from './weather/weather.module'; @Module({ imports: [ ConfigModule.forRoot({ load: config, }), /* ThrottlerModule.forRoot({ throttlers: [{ ttl: 100000, limit: 30 }], }), */ WinstonModule.forRoot(winstonLoggerOptions), ClientModule, AuthenticationModule, UserModule, InviteUserModule, CommunityModule, SpaceModule, SpaceModelModule, GroupModule, DeviceModule, DeviceMessagesSubscriptionModule, UserDevicePermissionModule, UserNotificationModule, SeederModule, SceneModule, AutomationModule, DoorLockModule, RegionModule, TimeZoneModule, VisitorPasswordModule, ScheduleModule, ProductModule, ProjectModule, PermissionModule, RoleModule, TermsConditionsModule, PrivacyPolicyModule, TagModule, DeviceCommissionModule, PowerClampModule, HealthModule, OccupancyModule, WeatherModule, ], providers: [ { provide: APP_INTERCEPTOR, useClass: LoggingInterceptor, }, /* { provide: APP_GUARD, useClass: ThrottlerGuard, }, */ ], }) export class AppModule {}