Добавлены модели для внешней рекламы и кэша склада 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

30
src/lib/click-storage.ts Normal file
View File

@ -0,0 +1,30 @@
// Общее хранилище кликов для всех API роутов
class ClickStorage {
private static instance: ClickStorage
private storage = new Map<string, number>()
static getInstance(): ClickStorage {
if (!ClickStorage.instance) {
ClickStorage.instance = new ClickStorage()
}
return ClickStorage.instance
}
recordClick(linkId: string): number {
const currentClicks = this.storage.get(linkId) || 0
const newClicks = currentClicks + 1
this.storage.set(linkId, newClicks)
console.log(`Click recorded for ${linkId}: ${newClicks} total`)
return newClicks
}
getClicks(linkId: string): number {
return this.storage.get(linkId) || 0
}
getAllClicks(): Record<string, number> {
return Object.fromEntries(this.storage)
}
}
export const clickStorage = ClickStorage.getInstance()