@extends('layouts.app') @section('title', 'Taxi confirmado | TAXILANZ Demo') @section('meta_description', 'Pantalla de taxi confirmado con recomendaciones contextuales y decisiones rápidas en TAXILANZ Demo.') @section('content') @php $recommendationOptions = $recommendations->take(3); $primaryRecommendation = $recommendationOptions->first(); $secondaryRecommendations = $recommendationOptions->skip(1); @endphp
Taxi confirmado

Tu taxi llega en {{ $ride->eta_minutes ?? 6 }} min.

Elige si quieres una parada útil antes de llegar.

Trayecto activo {{ $ride->pickup_label }} → {{ $ride->destination_label }} {{ ucfirst($ride->status) }} · {{ $ride->eta_minutes ?? 6 }} min
1 · Taxi 2 · Confirmado 3 · Oferta 4 · Reserva
@if ($primaryRecommendation)
Recomendación principal

{{ $primaryRecommendation->offer->title }}

{{ $primaryRecommendation->offer->location_label ?: $ride->destination_label }} · Disponible ahora

@if($primaryRecommendation->offer->price_from)€{{ number_format((float) $primaryRecommendation->offer->price_from, 0) }}@endif @if($primaryRecommendation->offer->duration_minutes){{ $primaryRecommendation->offer->duration_minutes }} min@endif Top {{ $primaryRecommendation->position }}
Ver y reservar
¿Por qué esta opción? Abrir
  • Encaja con tu destino: {{ $ride->destination_label }}.
  • @if($primaryRecommendation->offer->location_label)
  • Queda cerca de {{ $primaryRecommendation->offer->location_label }}.
  • @endif
  • {{ $primaryRecommendation->reason ?: 'La priorizamos por cercanía, disponibilidad y cierre rápido.' }}

Más info

{{ $primaryRecommendation->offer->title }}

Top {{ $primaryRecommendation->position }} prioridad
{{ $ride->eta_minutes ?? 6 }} min momento de atención
  • Trayecto: {{ $ride->pickup_label }}{{ $ride->destination_label }}.
  • Zona: {{ $ride->context_zone ?: 'General' }}.
  • Canal: {{ ucfirst($ride->source_channel) }}.
  • {{ $primaryRecommendation->reason ?: 'La propuesta destaca por contexto, proximidad y facilidad de reserva.' }}

Impacto

Qué mueve esta propuesta

{{ $primaryRecommendation->offer->price_from ? '€'.number_format((float) $primaryRecommendation->offer->price_from, 0) : '—' }} ticket visible
{{ $primaryRecommendation->offer->duration_minutes ? $primaryRecommendation->offer->duration_minutes.' min' : 'Flexible' }} duración
{{ ucfirst($ride->source_channel) }} origen del trayecto
  • Se muestra cuando el trayecto ya está resuelto y la decisión es simple.
  • La atribución y la lectura de negocio quedan fuera de la pantalla principal.
  • Si el usuario reserva, el dashboard recoge el impacto sin añadir ruido aquí.
@else
Todavía no hay una propuesta activa para este trayecto.
@endif
@if ($secondaryRecommendations->isNotEmpty())
Otras opciones

Solo 2 más para comparar

@foreach ($secondaryRecommendations as $recommendation)
Top {{ $recommendation->position }} @if($recommendation->offer->price_from)€{{ number_format((float) $recommendation->offer->price_from, 0) }}@endif @if($recommendation->offer->duration_minutes){{ $recommendation->offer->duration_minutes }} min@endif

{{ $recommendation->offer->title }}

{{ $recommendation->offer->location_label ?: 'Disponible ahora' }}

ℹ️ Más info Abrir

{{ $recommendation->reason ?: 'Opción contextual cercana al destino y fácil de reservar.' }}

@endforeach
@endif @endsection