diff --git a/brints-estate-api/src/app.module.ts b/brints-estate-api/src/app.module.ts index 648fc8d..d3fb3c9 100644 --- a/brints-estate-api/src/app.module.ts +++ b/brints-estate-api/src/app.module.ts @@ -1,29 +1,37 @@ import { Module } from '@nestjs/common'; -import { ConfigModule } from '@nestjs/config'; +import { ConfigModule, ConfigService } from '@nestjs/config'; +import { TypeOrmModule } from '@nestjs/typeorm'; -import { AuthModule } from './auth/auth.module'; import { UsersModule } from './users/users.module'; -// import { TypeOrmModule } from '@nestjs/typeorm'; +import { AuthModule } from './auth/auth.module'; +import { environmentValidationSchema } from './config/environment.validation'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, + envFilePath: !process.env.NODE_ENV + ? '.env' + : `.env.${process.env.NODE_ENV}`, + validationSchema: environmentValidationSchema, + }), + TypeOrmModule.forRootAsync({ + inject: [ConfigService], + useFactory: (configService: ConfigService) => ({ + type: 'postgres', + host: configService.get('DB_HOST'), + port: configService.get('DB_PORT'), + username: configService.get('DB_USER'), + password: configService.get('DB_PASSWORD'), + database: configService.get('DB_NAME'), + autoLoadEntities: process.env.NODE_ENV === 'development', + synchronize: process.env.NODE_ENV === 'development', + entities: [__dirname + '/**/*.entity{.ts,.js}'], + // entities: [User, UserAuth], + }), }), AuthModule, UsersModule, - // TypeOrmModule.forRootAsync({ - // useFactory: () => ({ - // type: 'postgres', - // host: 'localhost', - // port: 5432, - // username: 'postgres', - // password: 'postgres', - // database: 'brints-estate-backend', - // synchronize: true, - // autoLoadEntities: true, - // }) - // }) ], }) export class AppModule {}