import type { Knex } from 'knex';
import path from 'path';

const commonConfig: Knex.Config = {
  client: 'mysql2',
  connection: {
    host: process.env.DB_HOST?.split(':')[0],
    port: Number(process.env.DB_HOST?.split(':')[1]),
    user: process.env.DB_USER,
    password: process.env.DB_PASS ?? '',
    database: process.env.DB_NAME,
  },
};

const config: { [key: string]: Knex.Config } = {
  development: {
    ...commonConfig,
    migrations: {
      extension: 'ts',
      directory: path.resolve(__dirname, '../db/migrations'),
    },
    seeds: {
      extension: 'ts',
      directory: path.resolve(__dirname, '../db/seeds'),
    },
  },
  production: {
    ...commonConfig,
    migrations: {
      extension: 'js',
      directory: path.resolve(__dirname, '../../db/migrations'), // compiled JS path
    },
    seeds: {
      extension: 'js',
      directory: path.resolve(__dirname, '../../db/seeds'),
    },
  },
};

export default config;
