import { Module } from '@nestjs/common'; import { SessionModule } from './session/session.module'; import { TypeOrmModule } from '@nestjs/typeorm'; import { FileModule } from './file/file.module'; import { SeedingService } from './seeder/seeding.service'; import { ConfigModule, ConfigService } from '@nestjs/config'; import configuration from './config/configuration'; import { ScheduleModule } from '@nestjs/schedule'; @Module({ imports: [ ConfigModule.forRoot({ load: [configuration], }), TypeOrmModule.forRootAsync({ imports: [ConfigModule], inject: [ConfigService], useFactory: (configService: ConfigService) => { return { type: 'mysql', host: configService.get('database.host'), port: configService.get('database.port'), username: configService.get('database.username'), password: configService.get('database.password'), database: configService.get('database.database'), autoLoadEntities: true, synchronize: true, }; }, }), ScheduleModule.forRoot(), SessionModule, FileModule, ], providers: [SeedingService], }) export class AppModule { constructor(private readonly seedingService: SeedingService) {} async onApplicationBootstrap(): Promise { await this.seedingService.seed(); } }