39498-vm/resources/views/bookings/success.blade.php
2026-04-06 07:22:53 +00:00

133 lines
6.3 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@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