<?php
session_start();

// Verifica se o usuário já está logado
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
    header("Location: /dashboard/index.php?page=dashboard");
    exit;
}

// Conexão com o banco de dados
// (Certifique-se que o caminho do arquivo config_db.php está correto no seu servidor)
if(file_exists(__DIR__ . '/../config/config_db.php')) {
    require __DIR__ . '/../config/config_db.php';
} else {
    // Fallback apenas para não quebrar a tela se o arquivo não existir durante o teste visual
    // Remova este else em produção se necessário
    $pdo = null; 
}

// Incluir helper de autenticação
require_once __DIR__ . '/../backend/auth_helper.php';

$error = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Sanitiza os inputs
    $email = trim($_POST['email']);
    $password = trim($_POST['password']);

    // Verifica se o email é válido
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $error = "Por favor, insira um email válido.";
    } else {
        if ($pdo) {
            try {
                // Busca o usuário no banco de dados
                $stmt = $pdo->prepare("SELECT id, nome, email, senha_hash, tipo, status FROM usuarios WHERE email = :email LIMIT 1");
                $stmt->execute([':email' => $email]);
                $user = $stmt->fetch(PDO::FETCH_ASSOC);

                if ($user) {
                    $login_sucesso = false;
                    
                    // Verifica se tem senha_hash
                    if (!empty($user['senha_hash']) && trim($user['senha_hash']) !== '') {
                        // Valida com password_verify
                        if (password_verify($password, $user['senha_hash'])) {
                            $login_sucesso = true;
                        } else {
                            // Log para debug
                            error_log("Login falhou: password_verify retornou false para email: " . $email);
                        }
                    } else {
                        // Se não tem senha_hash, o usuário precisa redefinir a senha
                        error_log("Login falhou: usuário sem senha_hash para email: " . $email);
                        $error = "Usuário sem senha configurada. Entre em contato com o administrador.";
                    }
                    
                    // Verifica status do usuário
                    if ($login_sucesso) {
                        $status_usuario = isset($user['status']) ? $user['status'] : 'ativo';
                        if ($status_usuario !== 'ativo') {
                            $error = "Sua conta está bloqueada. Entre em contato com o administrador.";
                        } else {
                            // Faz login usando o helper
                            $resultado_login = fazer_login([
                                'id' => $user['id'],
                                'nome' => $user['nome'] ?? 'Usuário',
                                'email' => $user['email'],
                                'tipo' => $user['tipo'] ?? 'usuario',
                                'status' => $status_usuario
                            ]);
                            
                            if ($resultado_login) {
                                // Redireciona baseado no tipo de usuário
                                if (eh_admin()) {
                                    header("Location: /dashboard/index.php?page=dashboard");
                                } else {
                                    header("Location: /dashboard/usuario.php");
                                }
                                exit;
                            } else {
                                $error = "Erro ao criar sessão. Tente novamente.";
                            }
                        }
                    } else {
                        if (empty($error)) {
                            $error = "Email ou senha inválidos.";
                        }
                    }
                } else {
                    error_log("Login falhou: usuário não encontrado para email: " . $email);
                    $error = "Email ou senha inválidos.";
                }
            } catch (PDOException $e) {
                error_log("Erro no login: " . $e->getMessage());
                error_log("Stack trace: " . $e->getTraceAsString());
                $error = "Erro ao processar login. Verifique a conexão com o banco de dados.";
            }
        } else {
            $error = "Erro de conexão com banco de dados.";
        }
    }
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login | Checkout Pro</title>
    
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    
    <style>
        /* =========================================
           1. ESTILOS GERAIS E FUNDO
           ========================================= */
        * { margin: 0; padding: 0; box-sizing: border-box; }
        
        body {
            font-family: 'Montserrat', sans-serif;
            height: 100vh;
            width: 100%;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            /* Fundo Futurista Dark */
            background-color: #020617;
            background-image: 
                radial-gradient(circle at 50% 0%, #1e1b4b 0%, transparent 70%),
                linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
                linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
            background-size: 100% 100%, 40px 40px, 40px 40px;
            color: #fff;
            overflow: hidden;
        }

        /* =========================================
           2. TÍTULO GRANDE
           ========================================= */
        .brand-title {
            font-size: 3rem;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 4px;
            margin-bottom: 40px;
            text-align: center;
            
            /* Gradiente Neon */
            background: linear-gradient(to right, #4f46e5, #06b6d4);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            
            /* Brilho */
            filter: drop-shadow(0 0 15px rgba(79, 70, 229, 0.4));
            animation: fadeInDown 1s ease-out;
        }

        /* =========================================
           3. CONTAINER DE LOGIN (COM BORDA ANIMADA)
           ========================================= */
        .login-wrapper {
            position: relative;
            width: 380px;
            height: auto;
            border-radius: 20px;
            /* Importante para a borda giratória */
            overflow: hidden;
            box-shadow: 0 0 50px rgba(0, 0, 0, 0.5);
            animation: fadeInUp 1s ease-out;
        }

        /* O efeito de borda giratória (Background Gradient girando) */
        .login-wrapper::before {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: conic-gradient(
                transparent, 
                transparent, 
                transparent, 
                #4f46e5, /* Roxo */
                #06b6d4  /* Ciano */
            );
            animation: rotate-border 4s linear infinite;
        }

        /* A borda oposta para fechar o loop suavemente */
        .login-wrapper::after {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: conic-gradient(
                transparent, 
                transparent, 
                transparent, 
                #06b6d4, 
                #4f46e5
            );
            animation: rotate-border 4s linear infinite;
            animation-delay: -2s;
        }

        /* O conteúdo interno (preto) para cobrir o miolo do gradiente */
        .login-content {
            position: relative;
            background: rgba(15, 23, 42, 0.95); /* Quase preto */
            backdrop-filter: blur(10px);
            inset: 3px; /* Tamanho da borda (3px) */
            border-radius: 18px; /* Ligeiramente menor que o wrapper */
            padding: 40px 30px;
            z-index: 10;
            display: flex;
            flex-direction: column;
        }

        .login-content h2 {
            font-size: 20px;
            color: #e0e7ff;
            text-align: center;
            margin-bottom: 30px;
            font-weight: 500;
        }

        /* =========================================
           4. FORMULÁRIO E INPUTS
           ========================================= */
        .input-group {
            position: relative;
            margin-bottom: 25px;
        }

        .input-group i {
            position: absolute;
            left: 15px;
            top: 50%;
            transform: translateY(-50%);
            color: #64748b;
            font-size: 18px;
            transition: 0.3s;
        }

        .login-content input {
            width: 100%;
            padding: 15px 15px 15px 45px; /* Espaço para o ícone */
            background: rgba(255, 255, 255, 0.03);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 10px;
            color: #fff;
            font-size: 15px;
            outline: none;
            transition: all 0.3s ease;
            font-family: 'Montserrat', sans-serif;
        }

        .login-content input::placeholder { color: #475569; }

        /* Foco no input ilumina a borda e o ícone */
        .login-content input:focus {
            border-color: #06b6d4;
            background: rgba(6, 182, 212, 0.05);
            box-shadow: 0 0 15px rgba(6, 182, 212, 0.1);
        }
        .login-content input:focus + i { color: #06b6d4; }

        /* Botão */
        .btn-login {
            width: 100%;
            padding: 15px;
            background: linear-gradient(90deg, #4f46e5, #4338ca);
            color: white;
            border: none;
            border-radius: 10px;
            font-size: 16px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 1px;
            cursor: pointer;
            transition: 0.3s;
            box-shadow: 0 5px 15px rgba(79, 70, 229, 0.3);
            margin-top: 10px;
        }

        .btn-login:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 25px rgba(79, 70, 229, 0.5);
            background: linear-gradient(90deg, #4338ca, #3730a3);
        }

        /* Mensagem de Erro */
        .error-msg {
            background: rgba(239, 68, 68, 0.1);
            color: #f87171;
            padding: 12px;
            border-radius: 8px;
            border: 1px solid rgba(239, 68, 68, 0.2);
            text-align: center;
            font-size: 14px;
            margin-bottom: 20px;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
        }

        /* =========================================
           5. ANIMAÇÕES
           ========================================= */
        @keyframes rotate-border {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        @keyframes fadeInDown {
            from { opacity: 0; transform: translateY(-30px); }
            to { opacity: 1; transform: translateY(0); }
        }
        
        @keyframes fadeInUp {
            from { opacity: 0; transform: translateY(30px); }
            to { opacity: 1; transform: translateY(0); }
        }

        /* Responsividade */
        @media (max-width: 480px) {
            .brand-title { font-size: 2rem; }
            .login-wrapper { width: 90%; }
        }
    </style>
</head>
<body>

    <div class="brand-title">Checkout Pro</div>

    <div class="login-wrapper">
        <div class="login-content">
            
            <h2>Acessar Painel</h2>

            <?php if ($error): ?>
                <div class="error-msg">
                    <i class="fas fa-exclamation-circle"></i>
                    <?= htmlspecialchars($error); ?>
                </div>
            <?php endif; ?>

            <form method="POST">
                <div class="input-group">
                    <input type="text" name="email" placeholder="Seu email de acesso" required autocomplete="off">
                    <i class="fas fa-envelope"></i>
                </div>

                <div class="input-group">
                    <input type="password" name="password" placeholder="Sua senha secreta" required>
                    <i class="fas fa-lock"></i>
                </div>

                <button type="submit" class="btn-login">
                    Entrar <i class="fas fa-arrow-right" style="margin-left: 8px;"></i>
                </button>
            </form>

            <div style="margin-top: 20px; text-align: center;">
                <a href="#" style="color: #64748b; font-size: 13px; text-decoration: none;"></a>
            </div>

        </div>
    </div>

</body>
</html>