39498-vm/resources/views/home.blade.php
2026-04-06 06:39:36 +00:00

175 lines
8.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

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', 'TAXILANZ Demo | Taxi, recomendaciones contextuales y reserva simple')
@section('meta_description', 'Demo TAXILANZ en Laravel: el taxi funciona como punto de entrada para activar 23 propuestas relevantes y convertirlas en reservas medibles.')
@section('content')
<section class="hero">
<article class="card hero-copy">
<div>
<span class="eyebrow">Laravel-first demo · TAXILANZ</span>
<h1>El taxi se convierte en el inicio de una reserva útil.</h1>
<p>
Esta demo cuenta una historia muy concreta: un turista pide taxi, el trayecto se confirma,
aparecen 23 propuestas relevantes y una de ellas se convierte en reserva con tracking real.
Sin marketplace. Sin catálogo infinito. Solo activación en el momento exacto.
</p>
</div>
<div class="stats">
<div class="stat"><strong>{{ $metrics['rides'] }}</strong><span>Solicitudes de taxi</span></div>
<div class="stat"><strong>{{ $metrics['views'] }}</strong><span>Vistas de recomendación</span></div>
<div class="stat"><strong>{{ $metrics['bookings'] }}</strong><span>Reservas cerradas</span></div>
</div>
</article>
<aside class="card orb-wrap">
<div class="stack">
<div class="mini-card">
<small>Momento exacto</small>
<h3>Durante la espera o el trayecto</h3>
<p>El usuario ya está en movimiento y receptivo. Ahí es donde la recomendación tiene sentido.</p>
</div>
<div class="mini-card">
<small>Tracking real</small>
<h3>No es humo de pitch</h3>
<p>Se registran creación del ride, vistas, clics y reserva completada para demostrar impacto.</p>
</div>
<div class="mini-card success">
<small>Ángulo B2B</small>
<h3>Fácil para partners después</h3>
<p>La experiencia es simple para el turista y luego escalable para hotel, recepción o partner local.</p>
</div>
</div>
</aside>
</section>
<section class="section">
<div class="proof-grid">
<article class="card proof-card">
<span class="eyebrow">Impacto partner</span>
<strong class="proof-stat">{{ $metrics['ride_to_booking_rate'] }}%</strong>
<h2>Conversión ride booking</h2>
<p>La demo enseña que un trayecto confirmado puede convertirse en ingreso atribuible, no solo en transporte resuelto.</p>
</article>
<article class="card proof-card">
<span class="eyebrow">Señal comercial</span>
<strong class="proof-stat">{{ number_format($metrics['commission'], 0) }}</strong>
<h2>Comisión estimada trazable</h2>
<p>Desde el panel puedes enseñar GMV demo, comisión y etapas del funnel sin depender de discurso abstracto.</p>
</article>
<article class="card proof-card">
<span class="eyebrow">Ángulo ventas</span>
<strong class="proof-stat">{{ $metrics['clicks'] }}</strong>
<h2>Clics con intención real</h2>
<p>Menos catálogo, más contexto. Ese es el argumento que entienden hotel, recepción y operador local.</p>
<a class="inline-link" href="/admin/login">Abrir panel demo</a>
</article>
</div>
</section>
<section id="request" class="split">
<article class="card">
<span class="eyebrow">1 · Solicitar taxi</span>
<h2>Activa un trayecto demo</h2>
<p class="muted">Usa un origen y destino realistas de Lanzarote para que el motor pueda puntuar mejor las propuestas.</p>
@if ($errors->any())
<div class="errors">
<strong>Revisa el formulario:</strong>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form method="post" action="{{ route('rides.store') }}" style="margin-top:18px;">
@csrf
<div class="grid-2">
<label>
Punto de recogida
<input type="text" name="pickup_label" value="{{ old('pickup_label', 'Aeropuerto César Manrique') }}" placeholder="Aeropuerto César Manrique" required>
</label>
<label>
Destino
<input type="text" name="destination_label" value="{{ old('destination_label', 'Puerto del Carmen') }}" placeholder="Puerto del Carmen, Marina, Playa Blanca..." required>
</label>
</div>
<div class="grid-2">
<label>
Programado para
<input type="datetime-local" name="scheduled_for" value="{{ old('scheduled_for') }}">
</label>
<label>
Canal de origen
<select name="source_channel" required>
@foreach (['web' => 'Web', 'hotel' => 'Hotel', 'reception' => 'Recepción', 'app' => 'App'] as $value => $label)
<option value="{{ $value }}" @selected(old('source_channel', 'hotel') === $value)>{{ $label }}</option>
@endforeach
</select>
</label>
</div>
<input type="hidden" name="locale" value="es">
<button class="btn" type="submit">Confirmar taxi y activar sugerencias</button>
</form>
</article>
<aside id="how" class="card">
<span class="eyebrow">Qué demuestra esta demo</span>
<h2>Flujo MVP real</h2>
<div class="list">
<div class="list-item"><strong>1.</strong> Se guarda el ride con contexto, ETA y canal. <p>Eso ya deja una señal útil para operación y atribución.</p></div>
<div class="list-item"><strong>2.</strong> Un motor simple puntúa ofertas publicadas. <p>No busca mostrarlo todo; solo lo que mejor encaja ahora.</p></div>
<div class="list-item"><strong>3.</strong> La pantalla de taxi confirmado genera vistas y clics medibles. <p>Ahí empieza el funnel de impacto.</p></div>
<div class="list-item"><strong>4.</strong> La reserva cierra el circuito con conversión trazable. <p>Es la historia mínima que necesita un demo killer.</p></div>
</div>
</aside>
</section>
<section class="section">
<div style="display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:16px;">
<div>
<span class="eyebrow">Inventario demo</span>
<h2>Ofertas listas para sugerir</h2>
</div>
<p>Contenido corto, accionable y relevante para un turista que ya ha pedido transporte.</p>
</div>
<div class="cards">
@foreach ($featuredOffers as $offer)
<article class="card offer-card">
<div class="offer-visual" aria-hidden="true"></div>
<div>
<div class="offer-meta">
<span class="pill">{{ ucfirst($offer->category) }}</span>
@if($offer->location_label)
<span class="pill">{{ $offer->location_label }}</span>
@endif
@if($offer->price_from)
<span class="pill">Desde {{ number_format((float) $offer->price_from, 0) }}</span>
@endif
</div>
<h3 style="margin-top:14px;">{{ $offer->title }}</h3>
<p>{{ $offer->excerpt }}</p>
</div>
</article>
@endforeach
</div>
</section>
<section class="section">
<article class="card" style="display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;">
<div>
<span class="eyebrow">Cierre demo</span>
<h2>Front simple para turista. Historia clara para negocio.</h2>
<p class="muted">Cuando termines el recorrido, entra en el panel para enseñar funnel, canales y reservas sin salir de la narrativa TAXILANZ.</p>
</div>
<a class="btn btn-secondary" href="/admin/login">Ir al dashboard Filament</a>
</article>
</section>
@endsection