Добавлены модели для внешней рекламы и кэша склада WB в схему Prisma. Обновлены компоненты AdvertisingTab и WBWarehouseDashboard для работы с новыми данными. Реализованы GraphQL запросы и мутации для управления внешней рекламой и кэшем склада. Оптимизирована логика отображения статистики и добавлены новые функции для работы с рекламой.

This commit is contained in:
Bivekich
2025-07-29 17:44:40 +03:00
parent 8b0d3cde00
commit c174a9f83c
13 changed files with 4576 additions and 780 deletions

View File

@ -0,0 +1,34 @@
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))
}
}