import { NextRequest, NextResponse } from "next/server";
import { db } from "@/lib/admin/db";

export const dynamic = "force-dynamic";

/**
 * GET /api/redirects/lookup?source=/old-url
 * Fast redirect lookup endpoint used by routing layer.
 */
export async function GET(req: NextRequest) {
  try {
    const { searchParams } = new URL(req.url);
    const source = searchParams.get("source");

    if (!source) {
      return NextResponse.json({ redirect: null }, { status: 400 });
    }

    const normalizedSource = source.trim().toLowerCase();
    const item = await db.getRedirectBySource(normalizedSource);

    if (!item) {
      return NextResponse.json({ redirect: null }, { status: 404 });
    }

    const method = item.method || (item.permanent ? 301 : 302);

    return NextResponse.json({
      redirect: {
        id: item.id,
        source: item.source,
        destination: item.destination,
        permanent: item.permanent,
        method,
      },
    });
  } catch (error) {
    console.error("[api/redirects/lookup] Error:", error);
    return NextResponse.json({ redirect: null }, { status: 500 });
  }
}
