import mysql from 'mysql2/promise';

/**
 * MySQL connection pool for the `pdfremediate` database.
 * Defaults match a standard XAMPP install (root / no password); override via env.
 */
export const dbConfig = {
  host: process.env.DB_HOST || '127.0.0.1',
  port: Number(process.env.DB_PORT || 3306),
  user: process.env.DB_USER || 'root',
  password: process.env.DB_PASSWORD || '',
  database: process.env.DB_NAME || 'pdfremediate',
};

export const pool = mysql.createPool({
  ...dbConfig,
  waitForConnections: true,
  connectionLimit: 10,
  queueLimit: 0,
  charset: 'utf8mb4',
  // Return DECIMAL/BIGINT as JS numbers where safe (ids stay within Number range for this app).
  decimalNumbers: true,
});

export async function pingDb(): Promise<void> {
  const conn = await pool.getConnection();
  try {
    await conn.ping();
  } finally {
    conn.release();
  }
}
