import { TypeOrmModuleOptions } from '@nestjs/typeorm';
import path from 'path';
import { EEnvVariable } from './configuration/enums/env-variable.enum';

export function dbConfig(): TypeOrmModuleOptions {
  return {
    type: 'mysql',
    host: process.env[EEnvVariable.DATABASE_HOST],
    port: parseFloat(process.env[EEnvVariable.DATABASE_PORT]),
    username: process.env[EEnvVariable.DATABASE_USERNAME],
    password: process.env[EEnvVariable.DATABASE_PASSWORD],
    database: process.env[EEnvVariable.DATABASE_SCHEMA],
    entities: [path.join(__dirname, '**', '*.entity.{ts,js}')],
    migrations: [path.join(__dirname, 'migrations', '*.{ts,js}')],
    cli: {
      migrationsDir: path.join(__dirname, 'migrations'),
    },
  };
}

export default dbConfig();
