This commit is contained in:
Bivekich
2025-07-30 13:57:27 +03:00
parent d22eacb30c
commit 28312830a4
6 changed files with 343 additions and 13 deletions

View File

@ -110,6 +110,7 @@ model Organization {
supplySuppliers SupplySupplier[] @relation("SupplySuppliers")
externalAds ExternalAd[] @relation("ExternalAds")
wbWarehouseCaches WBWarehouseCache[] @relation("WBWarehouseCaches")
sellerStatsCaches SellerStatsCache[] @relation("SellerStatsCaches")
@@map("organizations")
}
@ -546,3 +547,35 @@ model WBWarehouseCache {
@@index([organizationId, cacheDate])
@@map("wb_warehouse_caches")
}
model SellerStatsCache {
id String @id @default(cuid())
organizationId String // ID организации
cacheDate DateTime // Дата кеширования (только дата, без времени)
period String // Период статистики (week, month, quarter, custom)
dateFrom DateTime? // Дата начала периода (для custom)
dateTo DateTime? // Дата окончания периода (для custom)
// Данные товаров
productsData Json? // Кешированные данные товаров
productsTotalSales Decimal? @db.Decimal(15, 2) // Общая сумма продаж товаров
productsTotalOrders Int? // Общее количество заказов товаров
productsCount Int? // Количество товаров
// Данные рекламы
advertisingData Json? // Кешированные данные рекламы
advertisingTotalCost Decimal? @db.Decimal(15, 2) // Общие расходы на рекламу
advertisingTotalViews Int? // Общие показы рекламы
advertisingTotalClicks Int? // Общие клики рекламы
// Метаданные
expiresAt DateTime // Время истечения кеша (24 часа)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
organization Organization @relation("SellerStatsCaches", fields: [organizationId], references: [id], onDelete: Cascade)
@@unique([organizationId, cacheDate, period, dateFrom, dateTo])
@@index([organizationId, cacheDate])
@@index([expiresAt])
@@map("seller_stats_caches")
}