<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Log;
use App\Mail\NuevaConsultaRecibida; 
use Illuminate\Validation\ValidationException;

class ContactoController extends Controller
{
    public function index() {
        return view('contacto');
    }

    public function send(Request $request) {
        // 1. Validación de datos
        $data = $request->validate([
            'nombre'               => 'required|string|max:100',
            'email'                => 'required|email|max:150',
            'asunto'               => 'required|string',
            'mensaje'              => 'required|string|min:10',
            'g-recaptcha-response' => 'required|captcha'
        ], [
            // Mensajes personalizados para que el usuario vea en la vista
            'mensaje.min' => 'El mensaje es muy corto, por favor danos más detalles (mínimo 10 caracteres).',
            'g-recaptcha-response.required' => 'Por favor, confirmá que no sos un robot.',
            'g-recaptcha-response.captcha'  => 'Error de validación del captcha. Intentá de nuevo.',
        ]);

        try {
            // 2. Intento de envío de mail
            $mailable = new NuevaConsultaRecibida($data);
            
            Mail::to('ivan.lizarazu@coirco.gov.ar')->send($mailable);
            
            // 3. Redirección a la página de éxito
            return redirect()->route('contacto.gracias');

        } catch (\Exception $e) {
            // Si el SMTP de COIRCO falla, lo registramos en el log
            Log::error("Error en envío de contacto: " . $e->getMessage());

            // Devolvemos al usuario con el error técnico para que sepa por qué falló
            return back()
                ->withErrors(['error' => 'No pudimos enviar el correo. Error técnico: ' . $e->getMessage()])
                ->withInput();
        }
    }

    public function gracias() {
        return view('contacto_gracias');
    }
}