From 1c7ea16300e29e8f7c91195de3f7ce4a0cb7f3ee Mon Sep 17 00:00:00 2001 From: adonis Date: Sat, 5 Sep 2026 12:58:14 +0330 Subject: [PATCH] fix(sse): send per-product trade_open from server trading hours The list stream must tell clients whether each product is open so the device clock cannot reopen a closed shop. Co-authored-by: Cursor --- app/Http/Controllers/Admin/ProductController.php | 5 ++++- app/Services/PriceBroadcastService.php | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Admin/ProductController.php b/app/Http/Controllers/Admin/ProductController.php index 3391f70..5d84097 100644 --- a/app/Http/Controllers/Admin/ProductController.php +++ b/app/Http/Controllers/Admin/ProductController.php @@ -715,7 +715,10 @@ class ProductController extends SuperController $displayPriceService = app(ProductDisplayPriceService::class); $displayPriceService->warmLivePriceCache(); $displayPriceService->enrichForApi($products); - $products->each(function (Product $product) use ($displayPriceService) { + $config = app(ConfigService::class); + $products->each(function (Product $product) use ($displayPriceService, $config) { + $tradeOpen = $config->isProductWithinTradingHours($product); + $product->setAttribute('trade_open', $tradeOpen); $product->setAttribute('show', $displayPriceService->resolveCustomerShow($product)); }); diff --git a/app/Services/PriceBroadcastService.php b/app/Services/PriceBroadcastService.php index 6d0d428..871aa30 100644 --- a/app/Services/PriceBroadcastService.php +++ b/app/Services/PriceBroadcastService.php @@ -207,6 +207,7 @@ class PriceBroadcastService 'reading_method' => (string) ($product['reading_method'] ?? ''), 'price_offset_percent' => (float) ($product['price_offset_percent'] ?? 0), 'show' => (bool) ($product['show'] ?? true), + 'trade_open' => (bool) ($product['trade_open'] ?? $product['show'] ?? true), 'active' => (bool) ($product['active'] ?? true), 'reference_provider_active' => (bool) ($product['reference_provider_active'] ?? false), ];