import type { ActionFunctionArgs } from "react-router";
import { importDb, type DbExport } from "~/lib/db.server";

export async function action({ request }: ActionFunctionArgs) {
  if (request.method !== "POST") {
    return Response.json({ error: "Method not allowed" }, { status: 405 });
  }

  let data: DbExport;
  try {
    data = await request.json();
  } catch {
    return Response.json({ error: "Invalid JSON body" }, { status: 400 });
  }

  if (!data || data.version !== 3) {
    return Response.json({ error: "Invalid or unsupported export format (expected version 3)" }, { status: 400 });
  }

  try {
    const result = importDb(data);
    return Response.json({ ok: true, imported: result });
  } catch (e) {
    return Response.json({ error: e instanceof Error ? e.message : "Import failed" }, { status: 500 });
  }
}

export default function () {
  return null;
}
