<?php

declare(strict_types=1);

namespace App\Http\Controllers;

use App\Http\Requests\StoreLeadRequest;
use App\Mail\DemoCredentialsMail;
use App\Models\Lead;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Mail;
use Illuminate\View\View;

/**
 * Página pública para probar la demo: captura el lead y le ENVÍA por correo las
 * credenciales de los 3 usuarios demo. NO inicia sesión (sin auto-login; el
 * prospecto entra por el login normal con las credenciales del correo).
 */
class DemoRequestController extends Controller
{
    public function show(): View
    {
        return view('demo-request');
    }

    public function store(StoreLeadRequest $request): RedirectResponse
    {
        $email = $request->string('email')->toString();

        Lead::create([
            'name' => $request->string('name')->toString(),
            'email' => $email,
            'phone' => $request->string('phone')->toString(),
            'message' => $request->filled('message') ? $request->string('message')->toString() : null,
            'source' => 'demo_request',
        ]);

        Mail::to($email)->queue(new DemoCredentialsMail($request->string('name')->toString()));

        return back()->with('demo_sent', true);
    }
}
