import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { AuthModule } from '@thallesp/nestjs-better-auth'; import { auth } from './modules/auth/auth'; import { UserModule } from './modules/user/user.module'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { PrismaModule } from './modules/database/prisma.module'; import { EmailModule } from './modules/email/email.module'; import { AppLoggerMiddleware } from './common/loggers/logger.middleware'; import { MentorModule } from './modules/mentor/mentor.module'; import { StorageModule } from './modules/storage/storage.module'; import { ServeStaticModule } from '@nestjs/serve-static'; import { join } from 'node:path'; import { AdminModule } from './modules/admin/admin.module'; @Module({ imports: [ AuthModule.forRoot({ auth, }), ConfigModule.forRoot({ isGlobal: true, }), ServeStaticModule.forRoot({ rootPath: join(process.cwd(), 'uploads'), // root/uploads serveRoot: '/uploads', serveStaticOptions: { index: false, }, }), PrismaModule, UserModule, EmailModule, MentorModule, StorageModule, AdminModule, ], controllers: [AppController], providers: [AppService], }) export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer.apply(AppLoggerMiddleware).forRoutes('*'); } }