{{-- resources/views/admin/support/show.blade.php --}} @extends('admin.layouts.app') @section('title', $ticket->ticket_number) @section('page_title', $ticket->subject) @section('breadcrumb') Support → {{ $ticket->ticket_number }} @endsection @section('content') @php $isOpen = in_array($ticket->status, ['open', 'in_progress', 'awaiting_property']); $priorityStyle = match($ticket->priority) { 'urgent' => 'background:#fee2e2;color:#991b1b;', 'high' => 'background:#fef3c7;color:#92400e;', 'medium' => 'background:#dbeafe;color:#1e40af;', default => 'background:var(--bg);color:var(--muted);', }; $statusClass = match($ticket->status) { 'open' => 'bs-pending', 'in_progress' => 'bs-trialing', 'awaiting_property' => 'bs-info_requested', 'resolved' => 'bs-approved', 'closed' => 'bs-draft', default => 'bs-draft', }; @endphp
{{-- Left — conversation thread --}}
{{-- Thread header --}}
{{ $ticket->ticket_number }} · {{ ucfirst(str_replace('_', ' ', $ticket->type)) }}
{{ $ticket->subject }}
Opened {{ $ticket->created_at->format('d M Y H:i') }} @if($ticket->first_response_at) · First response {{ $ticket->first_response_at->diffForHumans() }} @endif
{{ ucfirst($ticket->priority) }} {{ str_replace('_', ' ', $ticket->status) }}
{{-- Messages --}}
Conversation {{ $ticket->messages->count() }} messages
@if($ticket->messages->isEmpty())

No messages yet

@else
@foreach($ticket->messages as $message) @php $isAdmin = $message->author_type && str_contains($message->author_type, 'Admin'); $isInternal = $message->is_internal; @endphp
{{-- Message header --}}
{{ strtoupper(substr($message->author?->name ?? '?', 0, 1)) }}
{{ $message->author?->name ?? 'Unknown' }} {{ $isAdmin ? 'Kubhuka Support' : 'Property' }}
@if($isInternal) Internal note @endif
{{ $message->created_at->format('d M Y H:i') }}
{{-- Body --}}
{{ $message->body }}
{{-- Attachments --}} @if($message->attachments->count() > 0) @endif
@endforeach
@endif
{{-- Reply Form --}} @if($isOpen)
Reply
@csrf @error('body')
{{ $message }}
@enderror
@else
This ticket is {{ $ticket->status }}. Reopen it to reply.
@endif
{{-- Right column — meta + actions --}}
{{-- Actions --}}
Actions
@if($isOpen)
@csrf
@csrf
@else
Ticket is {{ $ticket->status }}
@endif
{{-- Assign --}}
Assigned To
@csrf
{{-- Ticket Info --}}
Details
@php $details = [ 'Ticket #' => $ticket->ticket_number, 'Type' => ucfirst(str_replace('_', ' ', $ticket->type)), 'Priority' => ucfirst($ticket->priority), 'Opened' => $ticket->created_at->format('d M Y H:i'), 'First Response' => $ticket->first_response_at?->format('d M Y H:i') ?? '—', 'Resolved At' => $ticket->resolved_at?->format('d M Y H:i') ?? '—', 'Closed At' => $ticket->closed_at?->format('d M Y H:i') ?? '—', 'Messages' => $ticket->messages->count(), ]; @endphp @foreach($details as $label => $value)
{{ $label }} {{ $value }}
@endforeach
{{-- Property & User --}}
Raised By
{{-- User --}}
User
@if($ticket->user)
{{ strtoupper(substr($ticket->user->name, 0, 1)) }}
{{ $ticket->user->name }}
{{ $ticket->user->email }}
@else @endif
{{-- Property --}}
Property
@if($ticket->property)
{{ $ticket->property->name }}
{{ $ticket->property->city }}
@else @endif
@endsection