import { NextResponse } from "next/server";
import { getVisitorByPass, generateQrDataUrl } from "@/lib/visitors";
import { maskMobile } from "@/lib/aadhaar";

type Params = { params: Promise<{ passNo: string }> };

export async function GET(_req: Request, { params }: Params) {
  const { passNo } = await params;
  const visitor = await getVisitorByPass(passNo.toUpperCase());
  if (!visitor) {
    return NextResponse.json({ ok: false, error: "Pass not found." }, { status: 404 });
  }

  const arrival =
    typeof visitor.arrival_date === "string"
      ? visitor.arrival_date.slice(0, 10)
      : new Date(visitor.arrival_date).toISOString().slice(0, 10);

  const site = process.env.NEXT_PUBLIC_SITE_URL || "http://localhost:3000";
  return NextResponse.json({
    ok: true,
    pass_no: visitor.pass_no,
    name: visitor.name,
    age: visitor.age,
    gender: visitor.gender,
    mobile_masked: maskMobile(visitor.mobile),
    state: visitor.state,
    arrival_date: arrival,
    transport_mode: visitor.transport_mode,
    stay_type: visitor.stay_type,
    status: visitor.status,
    channel: visitor.channel,
    qr_url: `${site}/api/v1/registration/pass/${visitor.pass_no}/qr`,
    pass_url: `${site}/pass/${visitor.pass_no}`,
  });
}
