find($order->company_id); if (! $company) return; // ── Staff: Web Push to active users of this tenant ── $title = 'Comandă nouă #' . $order->number; $body = $order->customer_name . ' · ' . number_format((float) $order->total, 2) . ' ' . ($company->settings['currency'] ?? 'MDL'); $url = '/app/resources/online-orders/' . $order->id . '/edit'; $userIds = User::where('status', 'active')->pluck('id'); foreach ($userIds as $uid) { $this->push->sendToUser((int) $uid, $title, $body, $url, 'shop-order-' . $order->id); } // ── Customer: Telegram if their phone is linked ── $needle = Client::normalizePhone($order->customer_phone); if ($needle) { $client = Client::whereNotNull('telegram_chat_id') ->whereRaw( "REPLACE(REPLACE(REPLACE(REPLACE(phone, ' ', ''), '-', ''), '(', ''), ')', '') LIKE ?", ['%' . substr($needle, -9) . '%'] ) ->first(); if ($client && $client->telegram_chat_id) { $brand = htmlspecialchars($company->display_name ?? $company->name); $text = "🛒 Comanda #{$order->number} primită\n" . "Total: " . number_format((float) $order->total, 2) . " " . ($company->settings['currency'] ?? 'MDL') . "\n\n" . "Urmărește statusul: " . $order->trackingUrl() . "\n\n{$brand}"; $this->telegram->sendMessage($company, (string) $client->telegram_chat_id, $text); } } } }