<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors', 1);

require_once 'config_smtp_recuperacao.php';
require_once 'conexao.php';

// PHPMailer
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
require 'PHPMailer/src/Exception.php';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

$mensagem = '';
$erro = '';

// Função para gerar senha aleatória segura
function gerarSenhaAleatoria($tamanho = 12) {
    $maiusculas = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $minusculas = 'abcdefghijklmnopqrstuvwxyz';
    $numeros = '0123456789';
    $especiais = '!@#$%^&*()';
    
    $senha = '';
    $senha .= $maiusculas[rand(0, strlen($maiusculas) - 1)];
    $senha .= $minusculas[rand(0, strlen($minusculas) - 1)];
    $senha .= $numeros[rand(0, strlen($numeros) - 1)];
    $senha .= $especiais[rand(0, strlen($especiais) - 1)];
    
    $todosCaracteres = $maiusculas . $minusculas . $numeros . $especiais;
    for ($i = 0; $i < $tamanho - 4; $i++) {
        $senha .= $todosCaracteres[rand(0, strlen($todosCaracteres) - 1)];
    }
    
    return str_shuffle($senha);
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);

    if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $erro = 'Informe um e-mail válido.';
    } else {
        // Verifica se o e-mail existe na tabela usuarios
        $stmt = $conn->prepare("SELECT id, nome FROM usuarios WHERE email = ? AND ativo = 'sim'");
        $stmt->bind_param("s", $email);
        $stmt->execute();
        $resultado = $stmt->get_result();

        if ($resultado->num_rows === 1) {
            $usuario = $resultado->fetch_assoc();
            $nome_usuario = $usuario['nome'];
            
            // Gera uma nova senha aleatória
            $nova_senha = gerarSenhaAleatoria();
            $senha_hash = password_hash($nova_senha, PASSWORD_DEFAULT);
            
            // Atualiza a senha no banco de dados
            $update = $conn->prepare("UPDATE usuarios SET senha = ? WHERE email = ?");
            $update->bind_param("ss", $senha_hash, $email);
            $update_sucesso = $update->execute();
            $update->close();
            
            if ($update_sucesso) {
                // Envia e-mail com a nova senha
                $mail = new PHPMailer(true);

                try {
                    // CONFIGURAÇÕES SMTP - VIA ARQUIVO EXTERNO (MESMO MÉTODO QUE FUNCIONA)
                    $mail->isSMTP();
                    $mail->Host       = SMTP_HOST_REC;
                    $mail->SMTPAuth   = true;
                    $mail->Username   = SMTP_USER_REC;
                    $mail->Password   = SMTP_PASS_REC;
                    $mail->SMTPSecure = SMTP_SECURE_REC;
                    $mail->Port       = SMTP_PORT_REC;
                    $mail->CharSet    = 'UTF-8';
                    
                    // 🔐 SOLUÇÃO PARA ERRO DE CERTIFICADO SSL (MESMO QUE FUNCIONA)
                    $mail->SMTPOptions = array(
                        'ssl' => array(
                            'verify_peer' => false,
                            'verify_peer_name' => false,
                            'allow_self_signed' => true
                        )
                    );
                    
                    $mail->SMTPDebug = 0;

                    // Remetente e destinatário (MESMO QUE FUNCIONA)
                    $mail->setFrom(SMTP_FROM_REC, SMTP_FROM_NAME_REC);
                    $mail->addAddress($email, $nome_usuario);
                    $mail->addReplyTo(SMTP_REPLY_TO_REC, SMTP_REPLY_TO_NAME_REC);

                    // Conteúdo do e-mail
                    $mail->isHTML(true);
                    $mail->Subject = 'Nova senha de acesso - SON TVi Tecnologia';
                    
                    $mail->Body = "
                        <html>
                        <head>
                            <meta charset='UTF-8'>
                            <style>
                                body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; }
                                .container { max-width: 600px; margin: 0 auto; padding: 20px; }
                                .senha { 
                                    background: linear-gradient(135deg, #667eea, #764ba2);
                                    color: white;
                                    padding: 20px; 
                                    border-radius: 8px; 
                                    font-family: monospace;
                                    font-size: 24px;
                                    letter-spacing: 5px;
                                    text-align: center;
                                    margin: 25px 0;
                                    font-weight: bold;
                                    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
                                }
                                .info { color: #666; font-size: 0.9em; }
                                .btn { 
                                    display: inline-block; 
                                    padding: 12px 25px; 
                                    background: linear-gradient(135deg, #667eea, #764ba2);
                                    color: white !important; 
                                    text-decoration: none; 
                                    border-radius: 5px;
                                    font-weight: bold;
                                    margin-top: 15px;
                                }
                                .btn:hover {
                                    transform: translateY(-2px);
                                    box-shadow: 0 10px 20px rgba(102, 126, 234, 0.4);
                                }
                            </style>
                        </head>
                        <body>
                            <div class='container'>
                                <h2 style='color: #333; border-bottom: 2px solid #667eea; padding-bottom: 10px;'>Redefinição de Senha</h2>
                                <p>Olá <strong>{$nome_usuario}</strong>,</p>
                                <p>Foi gerada uma nova senha para sua conta no <strong>SON TVi Tecnologia</strong>:</p>
                                <div class='senha'>{$nova_senha}</div>
                                <p><strong>📋 Instruções importantes:</strong></p>
                                <ol style='background: #f8f9fa; padding: 20px 20px 20px 40px; border-radius: 8px;'>
                                    <li>Acesse o sistema com esta senha temporária</li>
                                    <li>Vá até as configurações de sua conta</li>
                                    <li>Altere para uma senha de sua preferência</li>
                                </ol>
                                <div style='text-align: center;'>
                                    <a href='https://son.tvitecnologia.com.br/login.php' class='btn'>Acessar o Sistema →</a>
                                </div>
                                <p style='margin-top: 25px; padding: 15px; background: #fff3cd; border: 1px solid #ffeeba; border-radius: 5px; color: #856404;'>
                                    <strong>⚠️ Atenção:</strong> Caso não tenha solicitado esta alteração, entre em contato imediatamente com nosso suporte.
                                </p>
                                <p style='margin-top: 25px; color: #666; font-size: 0.9em; text-align: center;'>
                                    Atenciosamente,<br>
                                    <strong>Equipe SON TVi Tecnologia</strong><br>
                                    <a href='mailto:suporte@son.tvitecnologia.com.br' style='color: #667eea; text-decoration: none;'>suporte@son.tvitecnologia.com.br</a>
                                </p>
                            </div>
                        </body>
                        </html>
                    ";

                    $mail->AltBody = "Redefinição de Senha - SON TVi Tecnologia\n\n"
                        . "Olá {$nome_usuario},\n\n"
                        . "Foi gerada uma nova senha para sua conta: {$nova_senha}\n\n"
                        . "Instruções importantes:\n"
                        . "1. Acesse o sistema com esta senha temporária\n"
                        . "2. Vá até as configurações de sua conta\n"
                        . "3. Altere para uma senha de sua preferência\n\n"
                        . "Acesse: https://son.tvitecnologia.com.br/login.php\n\n"
                        . "Caso não tenha solicitado esta alteração, entre em contato com suporte@son.tvitecnologia.com.br\n\n"
                        . "Atenciosamente,\n"
                        . "Equipe SON TVi Tecnologia";

                    if ($mail->send()) {
                        $mensagem = "✅ Uma nova senha foi enviada para <strong>{$email}</strong>. Verifique sua caixa de entrada e pasta de spam.";
                    } else {
                        throw new Exception("Falha no envio do e-mail");
                    }
                } catch (Exception $e) {
                    error_log("Erro ao enviar e-mail: " . $e->getMessage() . " - " . $mail->ErrorInfo);
                    $erro = "⚠️ A nova senha foi gerada, mas ocorreu um erro ao enviar o e-mail.<br>"
                          . "Por favor, entre em contato com o suporte informando seu e-mail:<br>"
                          . "<strong style='color: #667eea;'>suporte@son.tvitecnologia.com.br</strong>";
                }
            } else {
                $erro = "Ocorreu um erro ao atualizar sua senha. Por favor, tente novamente mais tarde.";
            }
        } else {
            // Mensagem genérica por segurança (não revela se e-mail existe)
            $mensagem = "Se o e-mail estiver cadastrado, você receberá as instruções em instantes.";
        }

        $stmt->close();
    }
}

$conn->close();
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Recuperar Senha - SON TVi Tecnologia</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background: #f5f5f5;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
        }
        .box {
            background: white;
            padding: 30px;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0,0,0,.1);
            max-width: 400px;
            width: 100%;
        }
        .logo {
            text-align: center;
            margin-bottom: 20px;
        }
        .logo img {
            max-width: 150px;
        }
        h2 {
            text-align: center;
            color: #333;
            margin-top: 0;
        }
        .form-group {
            margin: 15px 0;
        }
        label {
            display: block;
            margin-bottom: 5px;
            font-weight: bold;
        }
        input[type=email] {
            width: 100%;
            padding: 10px;
            border-radius: 4px;
            border: 1px solid #ccc;
            box-sizing: border-box;
        }
        button {
            width: 100%;
            padding: 12px;
            background: #3498db;
            color: white;
            border: none;
            border-radius: 4px;
            font-size: 16px;
            cursor: pointer;
            transition: background 0.3s;
        }
        button:hover {
            background: #2980b9;
        }
        .msg {
            margin: 15px 0;
            padding: 12px;
            border-radius: 4px;
            text-align: center;
        }
        .msg.success { 
            background: #d4edda; 
            color: #155724;
            border: 1px solid #c3e6cb;
        }
        .msg.error { 
            background: #f8d7da; 
            color: #721c24;
            border: 1px solid #f5c6cb;
        }
        .back-link {
            text-align: center;
            margin-top: 20px;
        }
        .back-link a {
            color: #3498db;
            text-decoration: none;
            font-size: 14px;
        }
        .back-link a:hover {
            text-decoration: underline;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="logo">
            <img src="son_semtexto.png" alt="Logo TVITEC" />
        </div>
        <h2>Recuperar Senha</h2>

        <?php if ($mensagem): ?>
            <div class="msg success"><?= $mensagem ?></div>
        <?php endif; ?>

        <?php if ($erro): ?>
            <div class="msg error"><?= $erro ?></div>
        <?php endif; ?>

        <form method="POST" action="">
            <div class="form-group">
                <label for="email">E-mail cadastrado:</label>
                <input type="email" name="email" id="email" required>
            </div>
            <button type="submit">Solicitar Nova Senha</button>
        </form>
        
        <div class="back-link">
            <a href="login.php">← Voltar para o login</a>
        </div>
        
        <p style="text-align: center; margin-top: 20px; color: #666; font-size: 12px;">
            Suporte: <a href="mailto:suporte@son.tvitecnologia.com.br" style="color: #3498db; text-decoration: none;">suporte@son.tvitecnologia.com.br</a>
        </p>
    </div>
</body>
</html>