@extends('layout.base') @section('title', 'Historial de citas') @section('style') @parent @endsection @section('container')

Historial de citas

Últimas citas registradas
@if (isset($citas) && $citas->count())
@foreach ($citas as $i => $cita) @php // decidir lado (alternar) $side = $i % 2 == 0 ? 'left' : 'right'; // estado a badge (ajusta según tus códigos) $estadoLabel = match ($cita->estado ?? ($cita->id_estado ?? '')) { 1 => ['label' => 'Ingresada', 'class' => 'bg-secondary text-white'], 2 => ['label' => 'Reagendada', 'class' => 'bg-info text-white'], 3 => ['label' => 'Cancelada', 'class' => 'bg-danger text-white'], 4 => ['label' => 'Completada', 'class' => 'bg-success text-white'], default => [ 'label' => $cita->estado_texto ?? 'Desconocido', 'class' => 'bg-light text-dark', ], }; // imagen (si viene) $img = $cita->imagen ?? null; if ($img && !str_starts_with($img, 'http')) { // intenta Storage::url si usas storage try { $img = \Illuminate\Support\Facades\Storage::exists($img) ? \Illuminate\Support\Facades\Storage::url($img) : asset($img); } catch (\Throwable $e) { $img = asset($img); } } @endphp
{{ $cita->servicio ?? 'Servicio' }}
{{ \Carbon\Carbon::parse($cita->fecha ?? ($cita->fecha_cita ?? $cita->created_at))->format('d/m/Y') }}  ·  {{ isset($cita->hora) ? \Carbon\Carbon::parse($cita->hora)->format('h:i A') : '' }}
{{ $estadoLabel['label'] }}
@if (!empty($cita->descripcion))
{{ Str::limit($cita->descripcion, 140) }}
@endif
@if ($img) Avatar @else Avatar @endif
Revisor: {{ $cita->nombres ?? '—' }}
Dirección: {{ $cita->domicilio ?? ($cita->calle ? $cita->calle . ' ' . $cita->numero_exterior : '—') }}
Registrada: {{ \Carbon\Carbon::parse($cita->fecha_creacion ?? ($cita->created_at ?? now()))->diffForHumans() }}
Ver detalle @if (isset($cita->id_cita) && ($cita->estado ?? 1) == 1) Reagendar @endif
@endforeach
@else
No tienes citas registradas

Cuando agendes citas aparecerán aquí en forma de línea de tiempo.

@endif
@endsection @section('scripts') @parent {{-- Si deseas, puedes añadir una animación para que los items aparezcan one-by-one --}} @endsection