import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import databaseConfig from './config/database.config';
import serverConfig from './config/server.config';
import swaggerConfig from './config/swagger.config';
import integrationConfig from './config/integration.config';
import { TypeOrmModule } from '@nestjs/typeorm';
import { FileModule } from './project/file.module';
import authConfig from './config/auth.config';

@Module({
  imports: [
    ConfigModule.forRoot({
      load: [
        swaggerConfig,
        serverConfig,
        databaseConfig,
        integrationConfig,
        authConfig,
      ],
      isGlobal: true,
    }),
    TypeOrmModule.forRootAsync({
      imports: [ConfigModule],
      useFactory: (configService: ConfigService) =>
        configService.get('database'),
      inject: [ConfigService],
    }),
    FileModule,
  ],
  controllers: [],
  providers: [ConfigService],
})
export class AppModule {}
