39499-vm/bookings/success.php
2026-04-06 06:47:41 +00:00

95 lines
4.8 KiB
PHP

<?php
declare(strict_types=1);
require_once __DIR__ . '/../includes/taxilanz.php';
app_boot();
$bookingUuid = trim((string) ($_GET['booking'] ?? ''));
$booking = $bookingUuid !== '' ? find_booking_by_uuid($bookingUuid) : null;
if (!$booking) {
http_response_code(404);
render_page_start('Reserva no encontrada', 'No se encontro la reserva solicitada.', 'home');
?>
<section class="card-shell p-5 text-center">
<div class="empty-state">
<strong>No encontramos esa reserva.</strong>
<p class="text-secondary mb-4">Vuelve al inicio para crear una nueva solicitud o revisar otras ofertas.</p>
<a class="btn btn-app-primary" href="/">Volver al inicio</a>
</div>
</section>
<?php
render_page_end();
exit;
}
$offer = find_offer_by_slug((string) $booking['offer_slug']);
$nextOffers = $offer ? related_offers($offer, 2) : [];
render_page_start(
'Reserva confirmada',
'La reserva fue registrada correctamente y ya puedes continuar explorando la siguiente recomendacion.',
'home'
);
?>
<section class="row g-4 mb-4">
<div class="col-12 col-lg-7">
<div class="card-shell p-4 p-lg-5 h-100">
<div class="section-head mb-4">
<div>
<div class="eyebrow">Estado final</div>
<h1 class="section-title mb-1">Reserva confirmada</h1>
<p class="text-secondary mb-0">Referencia <?= h($booking['uuid']) ?></p>
</div>
<span class="status-badge success"><?= h(status_label($booking['status'])) ?></span>
</div>
<div class="summary-block mb-4">
<div class="summary-line"><span>Offer</span><strong><?= h($booking['offer_title']) ?></strong></div>
<div class="summary-line"><span>Cliente</span><strong><?= h($booking['customer_name'] ?? 'Sin nombre') ?></strong></div>
<div class="summary-line"><span>Contacto</span><strong><?= h($booking['customer_email'] ?: ($booking['customer_phone'] ?: 'Pendiente')) ?></strong></div>
<div class="summary-line"><span>Personas</span><strong><?= h((string) $booking['party_size']) ?></strong></div>
<div class="summary-line"><span>Momento</span><strong><?= h(format_datetime($booking['booking_for'])) ?></strong></div>
<div class="summary-line"><span>Importe demo</span><strong><?= h(format_currency($booking['amount'])) ?></strong></div>
</div>
<div class="notice-panel mb-4">
<strong>Que se guardo</strong>
<p class="mb-0 text-secondary">La reserva, el importe estimado, la comision de demo y los eventos de inicio y finalizacion ya quedaron registrados en la base de datos.</p>
</div>
<div class="d-flex flex-column flex-sm-row gap-2">
<a class="btn btn-app-primary" href="/operations/">Ver operaciones</a>
<a class="btn btn-app-secondary" href="<?= !empty($booking['ride_uuid']) ? '/rides/confirmed.php?ride=' . urlencode((string) $booking['ride_uuid']) : '/' ?>">Volver al flujo</a>
</div>
</div>
</div>
<div class="col-12 col-lg-5">
<div class="card-shell p-4 p-lg-5 h-100">
<div class="section-head mb-4">
<div>
<div class="eyebrow">Siguiente micro-CTA</div>
<h2 class="section-title mb-1">Continua explorando</h2>
<p class="text-secondary mb-0">Un siguiente paso pequeño mantiene el flujo vivo y deja claro el potencial comercial del producto.</p>
</div>
</div>
<?php if ($nextOffers): ?>
<div class="stack-list">
<?php foreach ($nextOffers as $item): ?>
<a class="list-row" href="/offers/?slug=<?= urlencode($item['slug']) ?><?= !empty($booking['ride_uuid']) ? '&ride=' . urlencode((string) $booking['ride_uuid']) : '' ?>">
<div>
<strong><?= h($item['title']) ?></strong>
<div class="text-secondary small"><?= h(category_label($item['category'])) ?> · <?= h(format_currency($item['price_from'])) ?></div>
</div>
<span class="text-link">Abrir</span>
</a>
<?php endforeach; ?>
</div>
<?php else: ?>
<div class="empty-state compact">
<strong>No hay mas sugerencias ahora.</strong>
<p class="mb-0 text-secondary">Puedes volver al inicio para lanzar otro trayecto y generar nuevas recomendaciones.</p>
</div>
<?php endif; ?>
</div>
</div>
</section>
<?php render_page_end(); ?>