import { NextResponse } from "next/server";
import { z } from "zod";
import { getEnv } from "@/lib/env";

const requestSchema = z.object({ email: z.string().trim().email().max(254) });

export async function POST(request: Request) {
  const input = requestSchema.safeParse(await request.json().catch(() => null));
  if (!input.success) return NextResponse.json({ message: "Enter the email used for your WooCommerce account." }, { status: 400 });

  const startUrl = getEnv().WOO_SSO_START_URL;
  if (!startUrl) return NextResponse.json({ message: "The WooCommerce account portal is not configured yet." }, { status: 503 });

  const target = new URL(startUrl);
  target.searchParams.set("email", input.data.email.toLowerCase());
  target.searchParams.set("return_to", new URL("/api/auth/woo/exchange", getEnv().APP_URL).toString());
  return NextResponse.json({ redirectUrl: target.toString() });
}
