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

@ -108,6 +108,8 @@ model Organization {
fulfillmentSupplyOrders SupplyOrder[] @relation("SupplyOrderFulfillmentCenter")
wildberriesSupplies WildberriesSupply[]
supplySuppliers SupplySupplier[] @relation("SupplySuppliers")
externalAds ExternalAd[] @relation("ExternalAds")
wbWarehouseCaches WBWarehouseCache[] @relation("WBWarehouseCaches")
@@map("organizations")
}
@ -510,3 +512,37 @@ model SupplySupplier {
@@map("supply_suppliers")
}
model ExternalAd {
id String @id @default(cuid())
name String // Название рекламы
url String // URL рекламы
cost Decimal @db.Decimal(12, 2) // Стоимость
date DateTime // Дата рекламы
nmId String // ID товара Wildberries
clicks Int @default(0) // Количество кликов
organizationId String // ID организации
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
organization Organization @relation("ExternalAds", fields: [organizationId], references: [id], onDelete: Cascade)
@@index([organizationId, date])
@@map("external_ads")
}
model WBWarehouseCache {
id String @id @default(cuid())
organizationId String // ID организации
cacheDate DateTime // Дата кеширования (только дата, без времени)
data Json // Кешированные данные склада WB
totalProducts Int @default(0) // Общее количество товаров
totalStocks Int @default(0) // Общее количество остатков
totalReserved Int @default(0) // Общее количество в резерве
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
organization Organization @relation("WBWarehouseCaches", fields: [organizationId], references: [id], onDelete: Cascade)
@@unique([organizationId, cacheDate])
@@index([organizationId, cacheDate])
@@map("wb_warehouse_caches")
}