import { diagnoseDomainMail } from "@/lib/domain-mail-diagnostics";

export const runtime = "nodejs";
export const dynamic = "force-dynamic";

export async function GET(request: Request) {
  const domain = new URL(request.url).searchParams.get("domain") ?? "";

  try {
    const result = await diagnoseDomainMail(domain);

    return Response.json(
      { ok: true, result },
      {
        headers: {
          "Cache-Control": "public, max-age=60, s-maxage=300",
        },
      },
    );
  } catch (error) {
    const code = error instanceof Error ? error.message : "domain-check-failed";

    return Response.json(
      {
        error: code,
        message: code === "invalid-domain"
          ? "확인할 도메인을 정확히 입력해주세요. 예: officialsite.kr"
          : "DNS 조회 중 오류가 발생했습니다. 잠시 후 다시 시도해주세요.",
        ok: false,
      },
      { status: code === "invalid-domain" ? 400 : 500 },
    );
  }
}
