/**
 * Applique les migrations Drizzle (./drizzle/*.sql) à la DB locale.
 * Usage : `npm run db:migrate`
 *
 * En dev : PGlite (./pgdata).
 * En prod : utiliser drizzle-kit migrate avec DATABASE_URL.
 */

import { config } from "dotenv";
import path from "node:path";

config({ path: ".env.local" });

async function main() {
  const isProd = process.env.NODE_ENV === "production";

  if (isProd) {
    console.log("🚀 Migration prod — utiliser : npx drizzle-kit migrate");
    process.exit(0);
  }

  console.log("🗄️  Migration PGlite locale (./pgdata)...");

  const { PGlite } = await import("@electric-sql/pglite");
  const { drizzle } = await import("drizzle-orm/pglite");
  const { migrate } = await import("drizzle-orm/pglite/migrator");

  const client = new PGlite("./pgdata");
  const db = drizzle(client);

  await migrate(db, {
    migrationsFolder: path.resolve(process.cwd(), "drizzle"),
  });

  console.log("✅ Migrations appliquées.");
  await client.close();
}

main().catch((err) => {
  console.error("❌ Migration failed:", err);
  process.exit(1);
});
