import { Module, OnModuleInit } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { DevtoolsModule } from '@nestjs/devtools-integration'; import dayjs from 'dayjs'; import timezone from 'dayjs/plugin/timezone.js'; import utc from 'dayjs/plugin/utc.js'; import { CommonModule } from '@box/common/common.module'; import { SharedModule } from '@box/db/shared.module'; import { appConfigFactory } from './app.config'; import { validateEnvironment } from './config/env.validation'; import { LoggerModule } from 'nestjs-pino'; import { MgntBackendModule } from './mgnt-backend/mgnt-backend.module'; import pinoConfig from '@box/common/config/pino.config'; // adjust if your export name differs @Module({ imports: [ // Global config, load from .env.mgnt.dev then .env with validation ConfigModule.forRoot({ isGlobal: true, envFilePath: ['.env.mgnt.dev', '.env'], validate: validateEnvironment, }), ConfigModule.forFeature(appConfigFactory), CommonModule, // Shared utilities (includes PrismaModule, UtilsService) SharedModule, // Pino logger LoggerModule.forRoot(pinoConfig), // Your actual management backend MgntBackendModule, // 4) Devtools DevtoolsModule.register({ http: process.env.NODE_ENV === 'development', }), ], }) export class AppModule implements OnModuleInit { onModuleInit() { dayjs.extend(utc); dayjs.extend(timezone); } }