@include('partials.html-root-open') @include('partials.head-meta', ['pageTitle' => 'Notifications Center']) @include('partials.bank-restriction-notice-dialog') @include('partials.desktop-required-notice') @include('partials.workspace-lg-only-wrap-start') @include('partials.activity-drawer')
@include('partials.workspace-shell-operator-chrome') @include('partials.control-preview-shell-banner')

Notifications Center

Central stream for success notices, warnings, restrictions, and appeals.

@if (session('status'))

{{ session('status') }}

@endif @if ($errors->any())
@foreach ($errors->all() as $err)

{{ $err }}

@endforeach
@endif
@php $attentionCount = (int) (($attentionAlerts ?? [])['count'] ?? 0); @endphp
@php $attentionItems = collect(($attentionAlerts ?? [])['items'] ?? []); @endphp @if ($attentionItems->isEmpty())

No items need your attention right now.

@else

Each card aggregates an open task-queue item, Operations alert, treasury approval, governance directive, platform notice, or appeal response. Bank restriction notices use View Wire STATUS notice to open the official correspondent letter.

    @foreach ($attentionItems as $item) @include('partials.attention-workflow-item-card', ['item' => $item]) @endforeach
@once @include('partials.attention-workflow-script') @include('partials.attention-workflow-dialog') @endonce @endif
@php $streamTabs = [ 'success' => ['rows' => $successNotifications, 'severity' => 'Success'], 'warnings' => ['rows' => $warningNotifications, 'severity' => 'Warning'], 'restricted' => ['rows' => $restrictedNotifications, 'severity' => 'Restricted'], ]; @endphp @foreach ($streamTabs as $streamTab => $streamConfig) @php $rows = $streamConfig['rows']; @endphp
@forelse ($rows as $notification)

{{ str_replace('_', ' ', $notification->type) }}

{{ $notification->subject }}

{{ optional($notification->created_at)->format('M d, Y H:i') }}

{{ $notification->message }}

@if(in_array($notification->type, ['cp_task_queue_message', 'control_panel_governance_notice'], true)) @include('partials.task-queue-directive-cta-links', ['ctaLinks' => data_get($notification->meta, 'cta_links')]) @endif

Severity: {{ $streamConfig['severity'] }}

Channel: {{ $notification->channel }}

Type: {{ $notification->type }}

Reference: {{ data_get($notification->meta, 'wire_ref') ?? data_get($notification->meta, 'invoice_number') ?? data_get($notification->meta, 'invoice_id') ?? data_get($notification->meta, 'reference_code') ?? data_get($notification->meta, 'task_queue_admin_message_id') ?? 'n/a' }}

@if ($notification->needsAttention())

Status: Awaiting your resolution

@elseif ($notification->isResolved())

Status: Resolved

@endif
@if (in_array($notification->type, ['working_account_blocked', 'wire_status_notice'], true)) @php $restrictionPayload = app(\App\Services\BlockedAccountRestrictionNoticeService::class)->payloadFromNotification($notification); @endphp
@elseif ($notification->needsAttention())
@csrf
@endif
@empty

No notifications yet in this filter.

@endforelse @if ($rows->count() > 0)
{{ $rows->links() }}
@endif
@endforeach

Submit Appeal

@csrf
@foreach ($appeals as $appeal)

{{ $appeal->subject }}

{{ str_replace('_', ' ', $appeal->status) }}

Context: {{ $appeal->context_type ?? 'n/a' }} · Ref: {{ $appeal->context_reference ?? 'n/a' }}

Submitted: {{ optional($appeal->submitted_at ?? $appeal->created_at)->format('M d, Y H:i') }}

Last actor: {{ $appeal->last_actor ?? 'n/a' }}

@foreach ($appeal->messages as $message)

{{ strtoupper($message->author_role) }}

{{ $message->message }}

@endforeach
@csrf
@endforeach @if ($appeals->isEmpty())

No appeal files on record yet. Use Submit Appeal above to open a compliance review.

@endif
@include('partials.workspace-lg-only-wrap-end')