@php $signedIn = collect(['platform', 'seller', 'colleague'])->contains(fn ($guard) => auth($guard)->check()); // slice 11 (پ۱۱-۲): the app is installable from the colleague's pages and the public front only — never from the // panel or the console, whose «install» would open the colleague app (App\Support\AppShell::START) $installable = request()->routeIs('mz.home', 'mz.install', 'mz.colleague.*'); // slice 15الف (design language, S2 plan question 5): every console page — its sign-in included — wears the console // layer (its own header colour and the words «کنسول پلتفرم»), so the platform admin never mistakes it for a panel $console = request()->routeIs('mz.platform.*'); @endphp @yield('title') — مظنه @if ($installable) {{-- slice 15الف: white text on the dark header colour (App\Support\Palette::APP_THEME) --}} @endif @vite(['resources/css/mz-app.css', 'resources/js/mz-app.js'])
مظنه @if ($console) کنسول پلتفرم @endif @isset($seller) {{ $seller->name }} @endisset
@hasSection('nav') @endif @if ($signedIn)
@csrf
@endif
@if (session('mz.notice'))

{{ session('mz.notice') }}

@endif {{-- slice 6ب (پ۶-۲): the seller's price warnings above every panel page, from App\Catalog\PriceAlerts --}} @if (request()->routeIs('mz.seller.*') && auth('seller')->check()) {{-- slice 12 (پ۱۲-۱, پ۱۲-۲, flow ک۲): the subscription bar comes FIRST — «رو به پایان», «در مهلت», or «بسته و فقط‌خواندنی», which explains every refusal the other bars could not --}} @include('panel._subscription-alert', ['subscription' => ($mzSeller = app(\App\Tenancy\TenantManager::class)->current()) !== null ? \App\Subscriptions\Subscription::of($mzSeller) : null]) @include('panel._price-alert', $alerts ?? \App\Catalog\PriceAlerts::forPanel()) {{-- slice 8 (پ۸-۲): notices are not reaching customers — the provider's reason and the way to the report --}} @include('panel._sms-alert', ['smsHealth' => app(\App\Tenancy\TenantManager::class)->current() !== null ? \App\Sms\Notices::health() : null]) {{-- slice 9 (flow س۳): events are not reaching the accounting — the receiver's reason and the way to the queue --}} @include('panel._accounting-alert', ['accountingHealth' => app(\App\Tenancy\TenantManager::class)->current() !== null ? \App\Accounting\Pusher::health() : null]) @endif @yield('content')
@hasSection('credit') @endif