133 lines
6.3 KiB
PHP
133 lines
6.3 KiB
PHP
@extends('layouts.app')
|
||
|
||
@section('title', 'Reserva confirmada | TAXILANZ Demo')
|
||
@section('meta_description', 'Pantalla de éxito de la reserva para el funnel taxi → recomendación → booking.')
|
||
|
||
@section('content')
|
||
<section class="split">
|
||
<article class="card form-card">
|
||
<span class="eyebrow">Reserva confirmada</span>
|
||
<h1 style="font-size:clamp(2.15rem,4vw,3.7rem);max-width:12ch;">Reserva cerrada.</h1>
|
||
<p class="compact-lead">{{ $booking->customer_name }} ya tiene {{ $booking->offer->title }}.</p>
|
||
|
||
<div class="story-rail" aria-label="Progreso del funnel">
|
||
<span class="story-chip is-done">1 · Taxi</span>
|
||
<span class="story-chip is-done">2 · Contexto</span>
|
||
<span class="story-chip is-done">3 · Oferta</span>
|
||
<span class="story-chip is-active">4 · Reserva</span>
|
||
</div>
|
||
|
||
<div class="route-card">
|
||
<small>Resultado</small>
|
||
<strong>{{ $booking->offer->title }}</strong>
|
||
<span>{{ $booking->amount ? '€'.number_format((float) $booking->amount, 2) : 'Importe pendiente' }} · {{ ucfirst($booking->status) }} · {{ $booking->ride?->context_zone ?: ($booking->offer->location_label ?: 'General') }}</span>
|
||
</div>
|
||
|
||
<div class="metric-strip metric-strip--3">
|
||
<div class="metric-cell">
|
||
<strong>{{ $booking->amount ? '€'.number_format((float) $booking->amount, 0) : '—' }}</strong>
|
||
<span>importe</span>
|
||
</div>
|
||
<div class="metric-cell">
|
||
<strong>{{ $booking->commission_amount ? '€'.number_format((float) $booking->commission_amount, 0) : '—' }}</strong>
|
||
<span>comisión</span>
|
||
</div>
|
||
<div class="metric-cell">
|
||
<strong>{{ $booking->recommendation?->position ? 'Top '.$booking->recommendation->position : 'Directa' }}</strong>
|
||
<span>atribución</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="cta-row" style="margin-top:10px;">
|
||
<a class="btn" href="{{ route('home') }}">Iniciar otro trayecto</a>
|
||
@if($booking->ride)
|
||
<a class="btn btn-secondary" href="{{ route('rides.confirmed', $booking->ride) }}">Volver al taxi confirmado</a>
|
||
@endif
|
||
<button type="button" class="icon-button" data-modal-open="booking-business" data-tooltip="Detalle negocio">Ver negocio</button>
|
||
</div>
|
||
|
||
<details class="disclosure" style="margin-top:8px;">
|
||
<summary>
|
||
<span>ℹ️ Ver detalle de atribución</span>
|
||
<span>Abrir</span>
|
||
</summary>
|
||
<div class="disclosure-body">
|
||
<ul class="accordion-list">
|
||
<li>Booking UUID: <strong>{{ $booking->uuid }}</strong>.</li>
|
||
<li>Estado: <strong>{{ ucfirst($booking->status) }}</strong>.</li>
|
||
<li>Ride vinculado: <strong>{{ $booking->ride?->uuid ?? 'Reserva directa' }}</strong>.</li>
|
||
<li>Origen: <strong>{{ $booking->ride?->source_channel ? ucfirst($booking->ride->source_channel) : 'Directo' }}</strong>.</li>
|
||
</ul>
|
||
</div>
|
||
</details>
|
||
</article>
|
||
|
||
<aside class="card form-card">
|
||
<span class="eyebrow">Business snapshot</span>
|
||
<div class="decision-primary">
|
||
<h2>Valor visible</h2>
|
||
<div class="screen-kpis">
|
||
<div class="screen-kpi">
|
||
<strong>{{ $booking->offer->location_label ?: 'Zona activa' }}</strong>
|
||
<span>zona</span>
|
||
</div>
|
||
<div class="screen-kpi">
|
||
<strong>{{ $booking->ride?->source_channel ? ucfirst($booking->ride->source_channel) : 'Directo' }}</strong>
|
||
<span>canal</span>
|
||
</div>
|
||
<div class="screen-kpi">
|
||
<strong>{{ $booking->customer_email ?: 'No informado' }}</strong>
|
||
<span>contacto</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<details class="disclosure disclosure--soft" style="margin-top:16px;">
|
||
<summary>
|
||
<span>ℹ️ Ver datos operativos</span>
|
||
<span>Abrir</span>
|
||
</summary>
|
||
<div class="disclosure-body">
|
||
<ul class="accordion-list">
|
||
<li>{{ $booking->offer->title }} queda como conversión cerrada.</li>
|
||
<li>La comisión demo ya es visible en dashboard.</li>
|
||
<li>El usuario ve un cierre limpio; negocio ve trazabilidad cuando la pide.</li>
|
||
</ul>
|
||
</div>
|
||
</details>
|
||
</aside>
|
||
</section>
|
||
|
||
<dialog class="app-modal" id="booking-business" aria-labelledby="booking-business-title">
|
||
<div class="app-modal-card">
|
||
<div class="app-modal-head">
|
||
<div>
|
||
<p class="eyebrow">Detalle negocio</p>
|
||
<h2 id="booking-business-title">Conversión atribuible</h2>
|
||
</div>
|
||
<button type="button" class="app-modal-close" data-modal-close aria-label="Cerrar modal">Cerrar</button>
|
||
</div>
|
||
<div class="metric-strip metric-strip--3">
|
||
<div class="metric-cell">
|
||
<strong>{{ $booking->amount ? '€'.number_format((float) $booking->amount, 2) : 'Pendiente' }}</strong>
|
||
<span>GMV</span>
|
||
</div>
|
||
<div class="metric-cell">
|
||
<strong>{{ $booking->commission_amount ? '€'.number_format((float) $booking->commission_amount, 2) : 'Pendiente' }}</strong>
|
||
<span>comisión</span>
|
||
</div>
|
||
<div class="metric-cell">
|
||
<strong>{{ $booking->recommendation?->position ? 'Top '.$booking->recommendation->position : 'Directa' }}</strong>
|
||
<span>origen</span>
|
||
</div>
|
||
</div>
|
||
<ul class="accordion-list">
|
||
<li>Oferta: <strong>{{ $booking->offer->title }}</strong>.</li>
|
||
<li>Zona: <strong>{{ $booking->ride?->context_zone ?: ($booking->offer->location_label ?: 'General') }}</strong>.</li>
|
||
<li>Canal: <strong>{{ $booking->ride?->source_channel ? ucfirst($booking->ride->source_channel) : 'Directo' }}</strong>.</li>
|
||
<li>La UI principal sigue limpia; la explicación queda bajo demanda.</li>
|
||
</ul>
|
||
</div>
|
||
</dialog>
|
||
@endsection
|