import { NextRequest, NextResponse } from 'next/server'

import { clickStorage } from '@/lib/click-storage'

export async function GET(request: NextRequest, context: { params: Promise<{ linkId: string }> }) {
  const { linkId } = await context.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.warn(`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))
  }
}
