<?php

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

require_once __DIR__ . '/../vendor/autoload.php';

// O JS (php-email-form/validate.js) espera resposta em TEXTO e "OK" no sucesso
header('Content-Type: text/plain; charset=utf-8');

// Configurações
const CONTACT_EMAIL = 'geral@wgf.ao';
const CONTACT_NAME  = 'WGF - Suporte Geral';
const SENDER_EMAIL  = 'geral@wgf.ao';
const SENDER_NAME   = 'Website WGF';

// Verificar método HTTP
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    echo 'Método não permitido';
    exit;
}

// Sanitização básica
$name     = isset($_POST['name']) ? trim($_POST['name']) : '';
$email    = isset($_POST['email']) ? trim($_POST['email']) : '';
$subject  = isset($_POST['subject']) ? trim($_POST['subject']) : '';
$message  = isset($_POST['message']) ? trim($_POST['message']) : '';

// Validação básica
if ($name === '' || $email === '' || $subject === '' || $message === '') {
    http_response_code(400);
    echo 'Por favor, preencha todos os campos obrigatórios.';
    exit;
}

// Validar email
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    http_response_code(400);
    echo 'Por favor, forneça um e-mail válido.';
    exit;
}

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

try {
    // Configurações SMTP
    $mail->isSMTP();
    $mail->Host       = 'mail.wgf.ao';
    $mail->SMTPAuth   = true;
    $mail->Username   = 'geral@wgf.ao';
    $mail->Password   = 'ol!*H2@G.mRMGlpj';
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
    $mail->Port       = 465;

    // Configuração UTF-8
    $mail->CharSet  = 'UTF-8';
    $mail->Encoding = 'base64';

    // Remetente e destinatários
    $mail->setFrom(SENDER_EMAIL, SENDER_NAME);
    $mail->addReplyTo($email, $name);
    $mail->addAddress(CONTACT_EMAIL, CONTACT_NAME);

    // Assunto
    $mail->Subject = 'Novo pedido de Suporte - ' . $name;

    // Corpo do e-mail (formatado)
    $body  = "========================================\n";
    $body .= "      NOVO PEDIDO DE SUPORTE\n";
    $body .= "========================================\n\n";

    $body .= "INFORMAÇÕES DO CLIENTE:\n";
    $body .= "------------------------\n";
    $body .= "Nome: {$name}\n";
    $body .= "E-mail: {$email}\n\n";

    $body .= "ASSUNTO: {$subject}\n";
    $body .= "------------------------\n\n";

    $body .= "DESCRIÇÃO:\n";
    $body .= wordwrap($message, 80) . "\n\n";

    $body .= "========================================\n";
    $body .= "Data: " . date('d/m/Y H:i:s') . "\n";
    $body .= "========================================\n";

    $mail->isHTML(false);
    $mail->Body = $body;

    // Enviar
    $mail->send();

    // O JS só verifica se a resposta é exatamente "OK"
    echo 'OK';

} catch (Exception $e) {
    error_log('Erro ao enviar e-mail: ' . $mail->ErrorInfo);
    http_response_code(500);
    echo 'Erro ao enviar e-mail. Por favor, tente novamente.';
}