/**
 * รัน migration 004 (face verify tables)
 * ใช้: npm run migrate:004
 */
import dotenv from 'dotenv';
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
import mysql from 'mysql2/promise';

const __dirname = path.dirname(fileURLToPath(import.meta.url));
dotenv.config({ path: path.join(__dirname, '..', '.env') });

const dbName =
  process.env.FACE_VERIFY_DB ||
  process.env.DB_NAME2 ||
  process.env.DB_NAME1 ||
  'cp164568_lerning';

const sqlPath = path.join(__dirname, '..', 'migrations', '004-face-verify.sql');
const sql = fs.readFileSync(sqlPath, 'utf8');

const conn = await mysql.createConnection({
  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: dbName,
  multipleStatements: true,
});

try {
  await conn.query(sql);
  console.log(`✅ Migration 004 applied on database: ${dbName}`);
} catch (e) {
  const msg = e instanceof Error ? e.message : String(e);
  console.error('❌ Migration failed:', msg);
  process.exit(1);
} finally {
  await conn.end();
}
