import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { BullModule } from '@nestjs/bullmq'; import { join } from 'path'; import { AuthModule } from './auth/auth.module'; import { UsersModule } from './users/users.module'; import { CoursesModule } from './courses/courses.module'; import { CatalogModule } from './catalog/catalog.module'; import { EnrollmentModule } from './enrollment/enrollment.module'; import { CertificatesModule } from './certificates/certificates.module'; import { GroupsModule } from './groups/groups.module'; import { SupportModule } from './support/support.module'; import { ModerationModule } from './moderation/moderation.module'; import { GenerationModule } from './generation/generation.module'; import { PaymentsModule } from './payments/payments.module'; import { SearchModule } from './search/search.module'; import { PrismaModule } from './common/prisma/prisma.module'; import { AdminModule } from './admin/admin.module'; import { CooperationModule } from './cooperation/cooperation.module'; @Module({ imports: [ // Configuration - load from project root ConfigModule.forRoot({ isGlobal: true, envFilePath: [ join(__dirname, '../../../.env.local'), join(__dirname, '../../../.env'), '.env.local', '.env', ], }), // BullMQ for job queues BullModule.forRoot({ connection: { host: process.env.REDIS_HOST || 'localhost', port: parseInt(process.env.REDIS_PORT || '6395', 10), }, }), // Database PrismaModule, // Feature modules AuthModule, UsersModule, CoursesModule, CatalogModule, EnrollmentModule, CertificatesModule, GroupsModule, SupportModule, ModerationModule, GenerationModule, PaymentsModule, SearchModule, AdminModule, CooperationModule, ], }) export class AppModule {}