@php use Illuminate\Support\Carbon; $user = auth()->user(); $role = $user->membership_status ?? $user->role ?? 'member'; switch ($role) { case 'super-admin': $layout = 'layouts.superadmin'; break; case 'advisor': $layout = 'layouts.advisor'; break; case 'admin': case 'moderator': $layout = 'layouts.moderator'; break; default: $layout = 'layouts.member'; } $creator = $thread->creator; $fmt = function ($dt) { try { if ($dt instanceof \Carbon\CarbonInterface) return $dt->format('Y-m-d H:i'); return Carbon::parse($dt)->format('Y-m-d H:i'); } catch (\Throwable $e) { return is_string($dt) ? $dt : ''; } }; $status = (string)($thread->status ?? 'open'); $statusLabel = match($status) { 'open' => 'مفتوحة', 'replied' => 'تم الرد', 'processing' => 'جاري المعالجة', 'executing' => 'قيد التنفيذ', 'closed' => 'مغلقة', default => $status, }; // ✅ أبقيناها كما هي (تستخدمها في الكلاسات لو تحب) $statusBadge = match($status) { 'open' => 'bg-sky-50 text-sky-700 border-sky-200 dark:bg-sky-900/30 dark:text-sky-200 dark:border-sky-700/50', 'replied' => 'bg-indigo-50 text-indigo-700 border-indigo-200 dark:bg-indigo-900/30 dark:text-indigo-200 dark:border-indigo-700/50', 'processing' => 'bg-amber-50 text-amber-800 border-amber-200 dark:bg-amber-900/25 dark:text-amber-100 dark:border-amber-700/50', 'executing' => 'bg-violet-50 text-violet-700 border-violet-200 dark:bg-violet-900/30 dark:text-violet-200 dark:border-violet-700/50', 'closed' => 'bg-rose-50 text-rose-700 border-rose-200 dark:bg-rose-900/25 dark:text-rose-100 dark:border-rose-700/50', default => 'bg-gray-50 text-gray-700 border-gray-200 dark:bg-gray-800 dark:text-gray-200 dark:border-gray-700', }; $urls = [ 'send' => route('support.messages.store', $thread->id), 'poll' => route('support.poll', $thread->id), 'typing' => route('support.typing', $thread->id), 'read' => route('support.read', $thread->id), 'back' => route('support.index'), ]; $meId = (int)$user->id; $othersReadId = (int)($othersReadId ?? 0); $lastMsgId = (int)($lastMsgId ?? ($messages->max('id') ?? 0)); // ⭐ ستايل سقراط لشارة الحالة (داخل صفحة داكنة) $statusPill = match($status) { 'open' => 'bg-sky-500/10 text-sky-200 border-sky-400/20', 'replied' => 'bg-indigo-500/10 text-indigo-200 border-indigo-400/20', 'processing' => 'bg-amber-500/10 text-amber-200 border-amber-400/20', 'executing' => 'bg-violet-500/10 text-violet-200 border-violet-400/20', 'closed' => 'bg-rose-500/10 text-rose-200 border-rose-400/20', default => 'bg-white/5 text-white/70 border-white/10', }; $statusDot = match($status) { 'open' => 'bg-sky-400', 'replied' => 'bg-indigo-400', 'processing' => 'bg-amber-400', 'executing' => 'bg-violet-400', 'closed' => 'bg-rose-400', default => 'bg-slate-400', }; @endphp @extends($layout) @section('title', 'تذكرة دعم #' . $thread->id) @push('styles') @endpush @section('content')
{{-- Alerts --}} @if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif {{-- HEADER (Socratic Hero) --}}
تذكرة دعم #{{ $thread->id }}

{{ $thread->subject }}

{{-- الحالة --}} {{ $statusLabel }} {{-- المُرسل --}} المُرسل: {{ $creator?->name ?? '—' }} {{-- الإسناد --}} @if($thread->assignedTo) مُسند إلى: {{ $thread->assignedTo->name }} @endif {{-- Presence --}} {{ ($othersOnline ?? false) ? 'متصل الآن' : 'غير متصل' }} {{-- Typing --}} لا يوجد كتابة حاليًا
رجوع
{{-- Controls --}}
@if($isStaff)
{{-- status --}}
@csrf
{{-- assign --}}
@csrf
{{-- toggle reply (creator) --}}
@csrf
@if($status !== 'closed')
@csrf
@endif @else
@csrf
@endif
{{-- CHAT BOX (Socratic) --}}
المحادثة
تحديث تلقائي + قراءة + حالة "يكتب الآن"
@foreach($messages as $m) @php $me = (int)$m->sender_id === $meId; $sender = $m->sender; $avatar = $sender?->avatar_url ?? asset('images/default-male-avatar.png'); $seenByOther = $me && $othersReadId > 0 && (int)$m->id <= $othersReadId; @endphp @if($m->is_system)
{{ $m->body }}
@else
avatar
{{ $sender?->name ?? '—' }} • {{ $fmt($m->created_at) }}
{{ $m->body }}
@if($me)
شوهدت ✅ تم الإرسال
@endif
@endif @endforeach
{{-- Reply --}}
@if($canReply)
@csrf
جاهز للرد
@else
الرد غير متاح حالياً: إمّا التذكرة مغلقة، أو تم منع الرد.
@endif
نظام رسائل الدعم — غرفة الصقر 🦅
@endsection