import { Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { ServeStaticModule } from '@nestjs/serve-static'; import { TypeOrmModule } from '@nestjs/typeorm'; import { join } from 'path'; import { AppBuildingModule } from './app-building/app-building.module'; import { AppGroupModule } from './app-group/app-group.module'; import { AppStorageModule } from './app-storage/app-storage.module'; import { AppUser } from './app-user/app-user.module'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { BuildingModule } from './objects/building/building.module'; import { GroupModule } from './objects/group/group.module'; import { StorageModule } from './objects/storage/storage.module'; import { UserModule } from './objects/user/user.module'; import { AuthModule } from './shared/auth/auth.module'; import { SecretsModule } from './shared/secrets/secrets.module'; @Module({ imports: [ ServeStaticModule.forRoot({ rootPath: join(__dirname, '..', 'usercontent'), serveRoot: '/usercontent', }), ConfigModule.forRoot({ envFilePath: ['.env.development', '.env'], isGlobal: true, }), TypeOrmModule.forRootAsync({ imports: [ConfigModule], useFactory: (configService: ConfigService) => ({ type: 'mysql', host: configService.get('DATABASE_HOST'), port: +configService.get('DATABASE_PORT'), username: configService.get('DATABASE_USER'), password: configService.get('DATABASE_PASS'), database: configService.get('DATABASE_BASE'), autoLoadEntities: true, synchronize: true, }), inject: [ConfigService], }), GroupModule, UserModule, BuildingModule, StorageModule, SecretsModule, AuthModule, AppUser, AppGroupModule, AppBuildingModule, AppStorageModule, ], controllers: [AppController], providers: [AppService], }) export class AppModule {}