src/app.module.ts
import { CacheModule, CacheStore, Module } from "@nestjs/common";
import { ConfigModule } from "@nestjs/config";
import { MongooseModule } from "@nestjs/mongoose";
import { AppController } from "./app.controller";
import { AppService } from "./app.service";
import { AuthModule } from "./auth/auth.module";
import { SecurityModule } from "./security/security.module";
import { UserModule } from "./user/user.module";
import { WalletModule } from "./wallet/wallet.module";
import { RequestModule } from "./request/request.module";
import { TransactionModule } from "./transaction/transaction.module";
import { AdminModule } from "./admin/admin.module";
import { HealthModule } from "./health/health.module";
import { ModuleManagerModule } from "./module-manager/ModuleManager.module";
import { OrderbookModule } from "./orderbook/orderbook.module";
import { ProfileModule } from "./profile/profile.module";
import { DocuSignModule } from "./docusign/docusign.module";
import { OrderRequestModule } from "./request-order/order-request.module";
import { PortfolioModule } from "./portfolio/portfolio.module";
import { PrometheusModule } from "@willsoto/nestjs-prometheus";
import * as redisStore from "cache-manager-redis-store";
@Module({
imports: [
PrometheusModule.register(),
CacheModule.register({
isGlobal: true,
store: redisStore as unknown as CacheStore,
username: process.env.REDIS_USERNAME,
password: process.env.REDIS_PASSWORD,
host: process.env.REDIS_HOST,
port: process.env.REDIS_PORT,
no_ready_check: true,
}),
ConfigModule.forRoot({
envFilePath: ".env",
isGlobal: true,
}),
MongooseModule.forRoot(process.env.MONGODB_URL),
AuthModule,
SecurityModule,
UserModule,
WalletModule,
RequestModule,
TransactionModule,
AdminModule,
HealthModule,
ModuleManagerModule,
OrderbookModule,
ProfileModule,
DocuSignModule,
OrderRequestModule,
PortfolioModule,
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}