<?php
require_once __DIR__ . '/../config/bootstrap.php';

use App\Services\Database;

$db = Database::getInstance();
$resultado = null;
$error = null;

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $codigo = trim($_POST['codigo'] ?? '');
    $numeroDocumento = trim($_POST['numero_documento'] ?? '');

    if (empty($codigo) || empty($numeroDocumento)) {
        $error = 'Por favor complete todos los campos.';
    } else {
        // Limpiar el código (quitar guiones)
        $codigo = str_replace('-', '', strtoupper($codigo));

        // Buscar contratos firmados
        $signatures = $db->fetchAll(
            "SELECT s.*, c.id as contract_id, c.titulo, c.created_at as contract_created_at, c.estado
             FROM signatures s
             JOIN contracts c ON s.contract_id = c.id
             WHERE s.numero_documento = :doc AND c.estado = 'firmado'",
            [':doc' => $numeroDocumento]
        );

        $encontrado = false;
        foreach ($signatures as $sig) {
            // Generar el código de verificación para esta firma
            $verificationCode = strtoupper(substr(
                hash('sha256', $sig['contract_id'] . $sig['id'] . $sig['firmado_at']),
                0,
                16
            ));

            if ($verificationCode === $codigo) {
                $resultado = [
                    'valido' => true,
                    'contrato_id' => sprintf('#%06d', $sig['contract_id']),
                    'titulo' => $sig['titulo'],
                    'firmante' => $sig['nombre_completo'] ?? 'No especificado',
                    'tipo_documento' => $sig['tipo_documento'],
                    'numero_documento' => $sig['numero_documento'],
                    'fecha_firma' => date('d/m/Y H:i:s', strtotime($sig['firmado_at'])),
                    'fecha_creacion' => date('d/m/Y', strtotime($sig['contract_created_at'])),
                    'estado' => ucfirst($sig['estado']),
                ];
                $encontrado = true;
                break;
            }
        }

        if (!$encontrado) {
            $resultado = ['valido' => false];
        }
    }
}

// Cargar configuración de empresa
require_once config_path('company-data.php');
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Verificar Contrato - <?= COMPANY_NAME ?></title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap" rel="stylesheet">
    <script src="https://cdn.tailwindcss.com"></script>
    <style>
        * {
            font-family: 'Inter', -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            letter-spacing: -0.011em;
        }
    </style>
</head>
<body class="bg-gradient-to-br from-indigo-50 via-white to-purple-50 min-h-screen">

    <!-- Header -->
    <header class="bg-white shadow-sm border-b border-gray-200">
        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
            <div class="flex items-center justify-between">
                <div class="flex items-center gap-3">
                    <div class="w-10 h-10 bg-indigo-600 rounded-lg flex items-center justify-center">
                        <svg class="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"></path>
                        </svg>
                    </div>
                    <div>
                        <h1 class="text-xl font-bold text-gray-900"><?= COMPANY_NAME ?></h1>
                        <p class="text-sm text-gray-500">Verificación de Contratos</p>
                    </div>
                </div>
                <a href="<?= base_url() ?>" class="text-sm text-indigo-600 hover:text-indigo-700 font-medium">
                    Volver al inicio
                </a>
            </div>
        </div>
    </header>

    <!-- Main Content -->
    <main class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-12">

        <!-- Formulario de Verificación -->
        <?php if ($resultado === null): ?>
        <div class="bg-white rounded-2xl shadow-xl p-8 mb-8">
            <div class="text-center mb-8">
                <div class="inline-flex items-center justify-center w-16 h-16 bg-indigo-100 rounded-full mb-4">
                    <svg class="w-8 h-8 text-indigo-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                    </svg>
                </div>
                <h2 class="text-2xl font-bold text-gray-900 mb-2">Verificar Autenticidad del Contrato</h2>
                <p class="text-gray-600">Ingresa el código de verificación y número de documento para validar</p>
            </div>

            <?php if ($error): ?>
            <div class="mb-6 bg-red-50 border-l-4 border-red-500 p-4 rounded">
                <p class="text-sm text-red-700"><?= htmlspecialchars($error) ?></p>
            </div>
            <?php endif; ?>

            <form method="POST" action="" class="space-y-6">
                <div>
                    <label for="codigo" class="block text-sm font-medium text-gray-700 mb-2">
                        Código de Verificación
                    </label>
                    <input
                        type="text"
                        id="codigo"
                        name="codigo"
                        placeholder="XXXX-XXXX-XXXX-XXXX"
                        maxlength="19"
                        required
                        class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-transparent text-center text-lg font-mono uppercase"
                        value="<?= htmlspecialchars($_POST['codigo'] ?? '') ?>"
                    >
                    <p class="mt-2 text-xs text-gray-500">El código de 16 caracteres que aparece en el PDF del contrato</p>
                </div>

                <div>
                    <label for="numero_documento" class="block text-sm font-medium text-gray-700 mb-2">
                        Número de Documento del Firmante
                    </label>
                    <input
                        type="text"
                        id="numero_documento"
                        name="numero_documento"
                        placeholder="Ej: 1234567890"
                        required
                        class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-transparent"
                        value="<?= htmlspecialchars($_POST['numero_documento'] ?? '') ?>"
                    >
                    <p class="mt-2 text-xs text-gray-500">El número de documento de la persona que firmó el contrato</p>
                </div>

                <button
                    type="submit"
                    class="w-full px-6 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 font-semibold transition-colors flex items-center justify-center gap-2"
                >
                    <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
                    </svg>
                    Verificar Documento
                </button>
            </form>
        </div>

        <!-- Información adicional -->
        <div class="bg-blue-50 border border-blue-200 rounded-lg p-6">
            <h3 class="text-sm font-semibold text-blue-900 mb-3">¿Dónde encuentro el código de verificación?</h3>
            <ul class="text-sm text-blue-800 space-y-2">
                <li class="flex items-start gap-2">
                    <svg class="w-5 h-5 text-blue-600 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                    </svg>
                    <span>El código se encuentra en la <strong>Página 6</strong> del PDF del contrato firmado</span>
                </li>
                <li class="flex items-start gap-2">
                    <svg class="w-5 h-5 text-blue-600 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                    </svg>
                    <span>Es un código de <strong>16 caracteres alfanuméricos</strong></span>
                </li>
                <li class="flex items-start gap-2">
                    <svg class="w-5 h-5 text-blue-600 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                    </svg>
                    <span>Aparece en la sección <strong>"Validación del Documento"</strong></span>
                </li>
            </ul>
        </div>

        <?php elseif ($resultado['valido']): ?>
        <!-- Resultado Válido -->
        <div class="bg-white rounded-2xl shadow-xl overflow-hidden">
            <!-- Header Verde -->
            <div class="bg-gradient-to-r from-green-500 to-emerald-600 p-8 text-white text-center">
                <div class="inline-flex items-center justify-center w-20 h-20 bg-white bg-opacity-20 rounded-full mb-4">
                    <svg class="w-12 h-12" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                    </svg>
                </div>
                <h2 class="text-3xl font-bold mb-2">Documento Verificado</h2>
                <p class="text-green-100">Este contrato es auténtico y tiene validez legal</p>
            </div>

            <!-- Información del Contrato -->
            <div class="p-8">
                <h3 class="text-lg font-semibold text-gray-900 mb-4">Información del Contrato</h3>
                <dl class="space-y-4">
                    <div class="flex justify-between border-b border-gray-200 pb-3">
                        <dt class="text-sm font-medium text-gray-500">ID del Contrato</dt>
                        <dd class="text-sm font-semibold text-gray-900"><?= htmlspecialchars($resultado['contrato_id']) ?></dd>
                    </div>
                    <div class="flex justify-between border-b border-gray-200 pb-3">
                        <dt class="text-sm font-medium text-gray-500">Título</dt>
                        <dd class="text-sm font-semibold text-gray-900"><?= htmlspecialchars($resultado['titulo']) ?></dd>
                    </div>
                    <div class="flex justify-between border-b border-gray-200 pb-3">
                        <dt class="text-sm font-medium text-gray-500">Firmante</dt>
                        <dd class="text-sm font-semibold text-gray-900"><?= htmlspecialchars($resultado['firmante']) ?></dd>
                    </div>
                    <div class="flex justify-between border-b border-gray-200 pb-3">
                        <dt class="text-sm font-medium text-gray-500">Documento</dt>
                        <dd class="text-sm font-semibold text-gray-900">
                            <?= htmlspecialchars($resultado['tipo_documento']) ?>: <?= htmlspecialchars($resultado['numero_documento']) ?>
                        </dd>
                    </div>
                    <div class="flex justify-between border-b border-gray-200 pb-3">
                        <dt class="text-sm font-medium text-gray-500">Fecha de Firma</dt>
                        <dd class="text-sm font-semibold text-gray-900"><?= htmlspecialchars($resultado['fecha_firma']) ?></dd>
                    </div>
                    <div class="flex justify-between border-b border-gray-200 pb-3">
                        <dt class="text-sm font-medium text-gray-500">Estado</dt>
                        <dd>
                            <span class="inline-flex px-3 py-1 text-xs font-semibold rounded-full bg-green-100 text-green-800">
                                <?= htmlspecialchars($resultado['estado']) ?>
                            </span>
                        </dd>
                    </div>
                </dl>

                <div class="mt-8 bg-green-50 border border-green-200 rounded-lg p-4">
                    <p class="text-sm text-green-800">
                        <strong>Validación exitosa:</strong> Este documento ha sido firmado electrónicamente y cumple con todos los requisitos legales.
                        Los datos mostrados coinciden con la información registrada en el sistema.
                    </p>
                </div>

                <div class="mt-6 flex gap-3">
                    <a href="<?= base_url('public/verificar.php') ?>" class="flex-1 px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 font-medium text-center">
                        Verificar Otro Documento
                    </a>
                </div>
            </div>
        </div>

        <?php else: ?>
        <!-- Resultado No Válido -->
        <div class="bg-white rounded-2xl shadow-xl overflow-hidden">
            <!-- Header Rojo -->
            <div class="bg-gradient-to-r from-red-500 to-rose-600 p-8 text-white text-center">
                <div class="inline-flex items-center justify-center w-20 h-20 bg-white bg-opacity-20 rounded-full mb-4">
                    <svg class="w-12 h-12" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
                    </svg>
                </div>
                <h2 class="text-3xl font-bold mb-2">Documento No Verificado</h2>
                <p class="text-red-100">No se pudo verificar la autenticidad de este documento</p>
            </div>

            <!-- Información -->
            <div class="p-8">
                <div class="bg-red-50 border border-red-200 rounded-lg p-4 mb-6">
                    <h3 class="text-sm font-semibold text-red-900 mb-2">Posibles razones:</h3>
                    <ul class="text-sm text-red-800 space-y-2">
                        <li class="flex items-start gap-2">
                            <svg class="w-5 h-5 text-red-600 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                            </svg>
                            <span>El código de verificación es incorrecto</span>
                        </li>
                        <li class="flex items-start gap-2">
                            <svg class="w-5 h-5 text-red-600 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                            </svg>
                            <span>El número de documento no coincide</span>
                        </li>
                        <li class="flex items-start gap-2">
                            <svg class="w-5 h-5 text-red-600 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                            </svg>
                            <span>El documento podría haber sido modificado</span>
                        </li>
                        <li class="flex items-start gap-2">
                            <svg class="w-5 h-5 text-red-600 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                            </svg>
                            <span>El documento no existe en el sistema</span>
                        </li>
                    </ul>
                </div>

                <p class="text-sm text-gray-600 mb-6">
                    Si cree que esto es un error, verifique que haya ingresado correctamente el código y el número de documento,
                    o contacte con el emisor del contrato para confirmar su autenticidad.
                </p>

                <div class="flex gap-3">
                    <a href="<?= base_url('public/verificar.php') ?>" class="flex-1 px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 font-medium text-center">
                        Intentar Nuevamente
                    </a>
                </div>
            </div>
        </div>
        <?php endif; ?>

    </main>

    <!-- Footer -->
    <?php include __DIR__ . '/../includes/admin-footer.php'; ?>

</body>
</html>
