import { NextResponse } from "next/server";
import { insert, now } from "@/lib/db";
import { verifyRecaptcha } from "@/lib/recaptcha";

export async function handlePowerStackForm(
  request: Request,
  table: string,
  subject: string,
  fields: string[],
  mailLines: Array<[string, string]>
) {
  const data = await request.formData();
  const get = (k: string) => (typeof data.get(k) === "string" ? String(data.get(k)) : "");

  const ok = await verifyRecaptcha(get("token"));
  if (!ok) return NextResponse.redirect(new URL("/power-stack-design?error=1", request.url), 303);

  const row: Record<string, string | number | Date> = {};
  for (const f of fields) row[f] = get(f);
  row.updated_at = now();

  const mailcontent =
    `Hello,<br><br> Company Name: ${get("company_name")}<br><br>` +
    mailLines.map(([label, field]) => ` ${label}: ${get(field)}<br>`).join("") +
    `<br><br> Thanks, <br>Paramvir Power Solutions LLP <br><br><span style="color:red"> This is an automated mail. Please do not reply to this email.</span>`;

  const hremail = "sales@paramvirpower.com";
  await insert("email", {
    from_email: get("email"),
    from_name: get("company_name"),
    to_email: hremail,
    to_name: "",
    title: "Power Stack Design Fill Form Data",
    subject,
    content: mailcontent,
    date: now(),
  });

  try {
    await insert(table, row);
    return NextResponse.redirect(new URL("/power-stack-design?success=1", request.url), 303);
  } catch {
    return NextResponse.redirect(new URL("/power-stack-design?error=1", request.url), 303);
  }
}
