import { MikroOrmModule } from '@mikro-orm/nestjs'; import { Module } from '@nestjs/common'; import dataBaseConfig from './config/mikro-orm.config'; import { ConfigModule } from '@nestjs/config'; import { UserModule } from './modules/user/user.module'; import { UtilsModule } from './modules/util/utils.module'; import { AuthModule } from './modules/auth/auth.module'; import { UploaderModule } from './modules/uploader/uploader.module'; import { AdminModule } from './modules/admin/admin.module'; import { ThrottlerModule } from '@nestjs/throttler'; import { ScheduleModule } from '@nestjs/schedule'; import { ProductModule } from './modules/product/product.module'; import { RolesModule } from './modules/roles/roles.module'; import { PaymentModule } from './modules/payment/payments.module'; import { NotificationsModule } from './modules/notification/notifications.module'; import { EventEmitterModule } from '@nestjs/event-emitter'; import { CacheModule } from '@nestjs/cache-manager'; import { PrintModule } from './modules/print/print.module'; import { FormBuilderModule } from './modules/form-builder/form-builder.module'; import { RequestModule } from './modules/request/request.module'; import { InvoiceModule } from './modules/invoice/invoice.module'; import { OrderModule } from './modules/order/order.module'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, cache: true }), MikroOrmModule.forRootAsync(dataBaseConfig), UserModule, UtilsModule, AuthModule, UploaderModule, AdminModule, ThrottlerModule.forRoot([ { ttl: 60, // time window in seconds limit: 5, // max requests per window }, ]), ScheduleModule.forRoot(), ProductModule, RolesModule, PaymentModule, // OrderModule, NotificationsModule, EventEmitterModule.forRoot(), PrintModule, FormBuilderModule, RequestModule, InvoiceModule, OrderModule ], controllers: [], providers: [], // exports: [CacheService], }) export class AppModule { }