import { NextRequest, NextResponse } from "next/server";
import { clickStorage } from "@/lib/click-storage";

export async function GET(
  request: NextRequest,
  { params }: { params: { linkId: string } }
) {
  const { linkId } = params;

  try {
    // Получаем целевую ссылку из параметров
    const redirectUrl = request.nextUrl.searchParams.get("redirect");

    if (!redirectUrl) {
      console.error(`No redirect URL for link: ${linkId}`);
      return NextResponse.redirect(new URL("/", request.url));
    }

    // Декодируем URL
    const decodedUrl = decodeURIComponent(redirectUrl);

    // Записываем клик через общий storage
    const totalClicks = clickStorage.recordClick(linkId);

    console.log(`Redirect: ${linkId} -> ${decodedUrl} (click #${totalClicks})`);

    // Мгновенный серверный редирект на целевую ссылку
    return NextResponse.redirect(decodedUrl);
  } catch (error) {
    console.error("Error processing tracking link:", error);
    return NextResponse.redirect(new URL("/", request.url));
  }
}
