import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ChatModule } from './chat/chat.module';
import { MongooseModule } from '@nestjs/mongoose';
import { databaseConfig } from './database/connections';
import { ModelsModule } from './models/models.module';
import { CommonModule } from './common/common.module';
import { JwtModule } from '@nestjs/jwt';
import { UploadsModule } from './uploads/uploads.module';
import { ConfigModule } from '@nestjs/config';
import { AuthModule } from './auth/auth.module';
import { ScheduleModule } from '@nestjs/schedule';
import { CallModule } from './call/call.module';
import { BackupModule } from './backup/backup.module';
import { NotificationModule } from './notification/notification.module';
import { PagesModule } from './pages/pages.module';
import { AdminModule } from './admin/admin.module';
import { AdminSeeder } from './admin/admin.seeder';
import { StaffModule } from './staff/staff.module';
import { SettingsModule } from './settings/settings.module';
import { EmailTemplateModule } from './email-template/email-template.module';
import { LanguagesModule } from './languages/languages.module';
import { CategoryModule } from './category/category.module';
import { InsurerModule } from './insurer/insurer.module';
import { AgentModule } from './agent/agent.module';
import { CustomerModule } from './customer/customer.module';
import { LeadModule } from './lead/lead.module';
import { ProductModule } from './product/product.module';
import { PolicyModule } from './policy/policy.module';
import { RegionModule } from './region/region.module';
const secretKey = process.env.SECRET_KEY;

@Module({
    imports: [
        MongooseModule.forRoot(databaseConfig),
        ConfigModule.forRoot({ isGlobal: true }),
        ScheduleModule.forRoot(),
        JwtModule.register({
            global: true,
            secret: secretKey
        }),
        ChatModule, ModelsModule, CommonModule,
        UploadsModule,
        AuthModule,
        CallModule,
        BackupModule,
        NotificationModule,
        PagesModule,
        AdminModule,
        StaffModule,
        SettingsModule,
        LanguagesModule,
        EmailTemplateModule,
        CategoryModule,
        RegionModule,
        InsurerModule,
        AgentModule,
        CustomerModule,
        LeadModule,
        ProductModule,
        PolicyModule
    ],
    controllers: [AppController],
    providers: [AppService, AdminSeeder],
})
export class AppModule { }
