<?php
session_start();
require_once 'conexao.php';
require_once 'config_smtp_recuperacao.php';
require 'vendor/autoload.php';

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

$mensagem = '';

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

    if (!$email) {
        $mensagem = 'Informe um e-mail válido.';
    } else {
        $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();

            // Gera token seguro e expiração (1h)
            $token = bin2hex(random_bytes(32));
            $expira = date('Y-m-d H:i:s', time() + 3600);

            // Salva token no banco
            $stmtUpdate = $conn->prepare("UPDATE usuarios SET token_recuperacao = ?, token_expira = ? WHERE id = ?");
            $stmtUpdate->bind_param("ssi", $token, $expira, $usuario['id']);
            $stmtUpdate->execute();
            $stmtUpdate->close();

            // Link de redefinição
            $link = "https://son.tvitecnologia.com.br/redefinir_senha.php?token=$token";

            // Envia e-mail com PHPMailer
            $mail = new PHPMailer(true);

            try {
                // Configurações SMTP do arquivo de configuração
                $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';
                $mail->SMTPDebug  = 0;

                $mail->setFrom(SMTP_FROM_REC, SMTP_FROM_NAME_REC);
                $mail->addAddress($email, $usuario['nome']);
                $mail->addReplyTo(SMTP_REPLY_TO_REC, SMTP_REPLY_TO_NAME_REC);

                $mail->isHTML(true);
                $mail->Subject = 'Redefinição de Senha - SON TVi Tecnologia';
                
                $mail->Body = "
                <!DOCTYPE html>
                <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; }
                        .header { background: #3498db; color: white; padding: 20px; text-align: center; border-radius: 5px 5px 0 0; }
                        .content { padding: 30px; background: #f9f9f9; border: 1px solid #ddd; }
                        .button { 
                            display: inline-block; 
                            padding: 12px 24px; 
                            background: #3498db; 
                            color: white; 
                            text-decoration: none; 
                            border-radius: 5px;
                            margin: 20px 0;
                        }
                        .footer { margin-top: 20px; padding: 20px; text-align: center; color: #666; font-size: 12px; }
                    </style>
                </head>
                <body>
                    <div class='container'>
                        <div class='header'>
                            <h2>Redefinição de Senha</h2>
                        </div>
                        <div class='content'>
                            <p>Olá {$usuario['nome']},</p>
                            <p>Recebemos uma solicitação para redefinir sua senha de acesso ao <strong>SON TVi Tecnologia</strong>.</p>
                            <p>Clique no botão abaixo para criar uma nova senha:</p>
                            <p style='text-align: center;'>
                                <a href='{$link}' class='button'>Redefinir Minha Senha</a>
                            </p>
                            <p>Se o botão não funcionar, copie e cole este link no seu navegador:</p>
                            <p style='word-break: break-all; color: #3498db;'>{$link}</p>
                            <p><strong>Este link é válido por 1 hora.</strong></p>
                            <p>Se você não solicitou esta redefinição, ignore este e-mail.</p>
                        </div>
                        <div class='footer'>
                            <p>SON TVi Tecnologia - Sistema de Organização de Negócios</p>
                            <p>Dúvidas? Entre em contato: suporte@son.tvitecnologia.com.br</p>
                        </div>
                    </div>
                </body>
                </html>
                ";

                $mail->AltBody = "Redefinição de Senha - SON TVi Tecnologia\n\n"
                    . "Olá {$usuario['nome']},\n\n"
                    . "Recebemos uma solicitação para redefinir sua senha.\n\n"
                    . "Acesse o link para criar uma nova senha:\n"
                    . "{$link}\n\n"
                    . "Este link é válido por 1 hora.\n\n"
                    . "Se não solicitou, ignore este e-mail.\n\n"
                    . "Dúvidas? suporte@son.tvitecnologia.com.br";

                $mail->send();
                $mensagem = 'Se o e-mail estiver cadastrado, você receberá as instruções para redefinir a senha.';
                
            } catch (Exception $e) {
                error_log("ERRO AO ENVIAR E-MAIL DE RECUPERAÇÃO (TOKEN): " . $e->getMessage());
                error_log("SMTP Error: " . $mail->ErrorInfo);
                $mensagem = 'Ocorreu um erro ao enviar o e-mail. Entre em contato com o suporte: suporte@son.tvitecnologia.com.br';
            }
        } else {
            $mensagem = 'Se o e-mail estiver cadastrado, você receberá as instruções para redefinir a senha.';
        }
        $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</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <style>
        /* Mesmo estilo do recuperar_senha.php ou o que você já utiliza */
        body {
            font-family: Arial, sans-serif;
            background: #f5f5f5;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
        }
        .container {
            background: #fff;
            padding: 30px;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            max-width: 400px;
            width: 100%;
            text-align: center;
        }
        input[type="email"] {
            width: 100%;
            padding: 10px;
            margin-top: 10px;
            margin-bottom: 20px;
            border: 1px solid #ccc;
            border-radius: 4px;
            box-sizing: border-box;
        }
        button {
            padding: 10px 20px;
            background: #3498db;
            border: none;
            color: white;
            border-radius: 4px;
            cursor: pointer;
            font-size: 16px;
            width: 100%;
        }
        button:hover {
            background: #2980b9;
        }
        .mensagem {
            margin-bottom: 15px;
            color: #2c3e50;
        }
    </style>
</head>
<body>
    <div class="container">
        <h2>Recuperar Senha</h2>

        <?php if (!empty($mensagem)): ?>
            <p class="mensagem"><?= htmlspecialchars($mensagem) ?></p>
        <?php endif; ?>

        <form method="POST" action="">
            <label for="email">Digite seu e-mail cadastrado:</label>
            <input type="email" name="email" id="email" required />
            <button type="submit">Enviar instruções</button>
        </form>
    </div>
</body>
</html>