@extends('layouts/layoutMaster') @section('title', 'Solicitudes de Presupuesto') @section('page-style') @vite('resources/assets/vendor/scss/pages/app-chat.scss') @endsection @section('content')
@if(session('status'))
{{ session('status') }}
@endif @if($errors->any())
@endif @php $statusMap = [ 'new' => ['label' => 'Nueva', 'class' => 'warning'], 'in_progress' => ['label' => 'En curso', 'class' => 'primary'], 'responded' => ['label' => 'Respondida', 'class' => 'success'], 'closed' => ['label' => 'Cerrada', 'class' => 'secondary'], ]; $statusSections = [ 'new' => 'Nuevas', 'in_progress' => 'En curso', 'responded' => 'Respondidas', 'closed' => 'Cerradas', ]; $selectedConversation = $conversations->firstWhere('id', $selectedConversationId) ?: $conversations->first(); $selectedConversationId = $selectedConversation ? (int) $selectedConversation->id : 0; @endphp
@if($selectedConversation) @php $selectedListing = $selectedConversation->mariachiListing ?: $selectedConversation->mariachiProfile?->resolveDefaultListing(); $selectedProfileName = $selectedListing?->title ?: $selectedListing?->business_name ?: $selectedConversation->mariachiProfile?->business_name ?: $selectedConversation->mariachiProfile?->user?->display_name; $selectedClientName = $selectedConversation->clientUser?->display_name ?: 'Cliente'; $selectedStatusMeta = $statusMap[$selectedConversation->status] ?? ['label' => $selectedConversation->status, 'class' => 'secondary']; $selectedPhone = $selectedConversation->contact_phone ?: $selectedConversation->clientUser?->phone; $selectedWhatsapp = $selectedPhone ? preg_replace('/\D/', '', $selectedPhone) : null; @endphp
Volver a solicitudes
{{ mb_strtoupper(mb_substr($selectedClientName, 0, 1)) }}

{{ $selectedClientName }}

{{ $selectedProfileName ?: 'Anuncio sin título' }}
{{ $selectedConversation->event_city ?: 'Sin ciudad' }} · {{ $selectedConversation->event_date?->translatedFormat('d M Y') ?: 'Sin fecha' }}
{{ $selectedStatusMeta['label'] }}
@if($selectedWhatsapp) WhatsApp @endif @if($selectedPhone) Llamar @endif
@foreach($statusMap as $value => $meta)
@csrf @method('PATCH')
@endforeach
@foreach($selectedConversation->messages as $message) @php $mine = (int) $message->sender_user_id === (int) auth()->id(); @endphp

{{ $message->message }}

{{ $message->sender?->display_name ?: 'Usuario' }} · {{ $message->created_at->format('Y-m-d H:i') }}
@endforeach
@csrf
Solicitud inicial
{{ $selectedConversation->messages->first()?->message ?: ($selectedConversation->event_notes ?: 'Sin descripción inicial.') }}
@if($selectedConversation->clientUser?->email)
{{ $selectedConversation->clientUser->email }}
@endif @if($selectedPhone)
{{ $selectedPhone }}
@endif
@else
Mensajería móvil

Habla con clientes desde aquí

Abre una solicitud, responde rápido y salta a WhatsApp cuando haga falta.

@forelse($conversations as $conversation) @php $listing = $conversation->mariachiListing ?: $conversation->mariachiProfile?->resolveDefaultListing(); $profileName = $listing?->title ?: $listing?->business_name ?: $conversation->mariachiProfile?->business_name ?: $conversation->mariachiProfile?->user?->display_name; $clientName = $conversation->clientUser?->display_name ?: 'Cliente'; $initials = collect(explode(' ', trim((string) $clientName))) ->filter() ->take(2) ->map(fn (string $part): string => mb_strtoupper(mb_substr($part, 0, 1))) ->implode(''); $lastMessage = $conversation->messages->last(); $summary = $lastMessage?->message ?: ($conversation->event_notes ?: 'Solicitud sin mensaje.'); $conversationStatusMeta = $statusMap[$conversation->status] ?? ['label' => $conversation->status, 'class' => 'secondary']; @endphp
{{ $initials !== '' ? $initials : 'CL' }}

{{ $clientName }}

{{ $profileName ?: 'Anuncio sin título' }}
{{ optional($conversation->last_message_at)->format('d/m H:i') ?: '-' }}
@if($conversation->unread_for_mariachi_count > 0) {{ $conversation->unread_for_mariachi_count }} @endif
{{ $conversationStatusMeta['label'] }} {{ $conversation->event_city ?: 'Sin ciudad' }}
{{ \Illuminate\Support\Str::limit($summary, 120) }}
@empty
No hay conversaciones activas todavía.
@endforelse
@endif
@if($selectedConversation) @php $selectedListing = $selectedConversation->mariachiListing ?: $selectedConversation->mariachiProfile?->resolveDefaultListing(); $selectedProfileName = $selectedListing?->title ?: $selectedListing?->business_name ?: $selectedConversation->mariachiProfile?->business_name ?: $selectedConversation->mariachiProfile?->user?->display_name; $selectedClientName = $selectedConversation->clientUser?->display_name ?: 'Cliente'; $selectedStatusMeta = $statusMap[$selectedConversation->status] ?? ['label' => $selectedConversation->status, 'class' => 'secondary']; $hasMariachiReply = $selectedConversation->messages->contains(fn ($message): bool => (int) $message->sender_user_id === (int) auth()->id()); @endphp
{{ mb_strtoupper(mb_substr($selectedClientName, 0, 1)) }}
{{ $selectedClientName }}
{{ $selectedProfileName ?: 'Anuncio sin titulo' }}
{{ $selectedStatusMeta['label'] }} @if(! $hasMariachiReply) Pendiente tu primera respuesta @endif
Ciudad: {{ $selectedConversation->event_city ?: 'Sin ciudad' }} Fecha: {{ $selectedConversation->event_date?->translatedFormat('d M Y') ?: 'Sin fecha' }} @php $headerPhone = $selectedConversation->contact_phone ?: $selectedConversation->clientUser?->phone; @endphp @if($headerPhone) Tel: {{ $headerPhone }}  ·  WhatsApp @endif
    @foreach($selectedConversation->messages as $message) @php $mine = (int) $message->sender_user_id === (int) auth()->id(); @endphp
  • @if(! $mine)
    {{ mb_strtoupper(mb_substr($selectedClientName, 0, 1)) }}
    @endif

    {{ $message->message }}

    {{ $message->sender?->display_name ?: 'Usuario' }} · {{ $message->created_at->format('Y-m-d H:i') }}
    @if($mine)
    YO
    @endif
  • @endforeach @if(! $hasMariachiReply)
  • El cliente ya envio su solicitud. Responde aqui para continuar la conversacion.

  • @endif
@else
Sin conversaciones activas

Cuando llegue una solicitud nueva, aparecera aqui.

@endif @if($selectedConversation) @php $clientDisplayName = $selectedConversation->clientUser?->display_name ?: 'Cliente'; $clientInitials = collect(explode(' ', trim((string) $clientDisplayName))) ->filter() ->take(2) ->map(fn (string $part): string => mb_strtoupper(mb_substr($part, 0, 1))) ->implode(''); $firstMessage = $selectedConversation->messages->first(); @endphp
@endif
@endsection @push('scripts') @endpush