<?php
header('Content-Type: application/json');
session_start();
require_once '../conexao.php';
require_once '../env.php';
require_once '../include/email-anuncio-pago.php';

if (!isset($_SESSION['id']) || ($_SESSION['role'] ?? '') !== 'Empresas') {
    echo json_encode(['success' => false, 'message' => 'Acesso negado.']); 
    exit;
}

$agendamento_id = $_POST['agendamento_id'] ?? null;

if (!$agendamento_id) {
    echo json_encode(['success' => false, 'message' => 'ID do agendamento não fornecido.']);
    exit;
}

try {
    // 1. Busca dados do agendamento e verifica se pertence à empresa logada
    // Adicionamos a verificação da empresa diretamente no JOIN para segurança
    $sql = "SELECT c.nome, c.email, e.nome_empresa, age.data_hora_entrevista,
                   COALESCE(ap.titulo_vaga, ag.titulo_vaga) as titulo_vaga,
                   age.id as age_id
            FROM Agendamentos age
            JOIN Candidatos c ON age.candidato_id = c.id
            LEFT JOIN anuncio_pago ap ON age.vaga_id = ap.id
            LEFT JOIN anuncio_gratuito ag ON age.vaga_id = ag.id
            JOIN Empresas e ON (ap.empresa_id = e.id OR ag.empresa_id = e.id)
            WHERE age.id = :age_id AND e.id = :emp_id";
            
    $stmt = $pdo->prepare($sql);
    $stmt->execute([':age_id' => $agendamento_id, ':emp_id' => $_SESSION['id']]);
    $info = $stmt->fetch();

    if (!$info) {
        throw new Exception("Agendamento não encontrado ou sem permissão.");
    }

    // 2. ATUALIZA O STATUS NO BANCO DE DADOS
    // Isso é o que faz o botão sumir na listagem de candidatos
    $updateSql = "UPDATE Agendamentos SET status = 'Realizado' WHERE id = :age_id";
    $updateStmt = $pdo->prepare($updateSql);
    $updateStmt->execute([':age_id' => $agendamento_id]);

    // 3. Envia e-mail de confirmação positiva
    $mail = configurarMailerParaAnuncioPago();
    if ($mail) {
        $mail->addAddress($info['email'], $info['nome']);
        $mail->Subject = "CONFIRMADO: Estamos te aguardando! - " . $info['titulo_vaga'];
        
        // Formatação da data para o e-mail
        $data_f = date('d/m/Y \à\s H:i', strtotime($info['data_hora_entrevista']));

        $mail->isHTML(true);
        $mail->CharSet = 'UTF-8'; // Garante acentuação correta
        $mail->Body = "
            <div style='font-family: Arial, sans-serif; color: #333; line-height: 1.6;'>
                <div style='background-color: #12929e; padding: 20px; text-align: center;'>
                    <h2 style='color: #ffffff; margin: 0;'>Tudo certo para nossa entrevista!</h2>
                </div>
                <div style='padding: 20px; border: 1px solid #eee;'>
                    <p>Olá, <strong>{$info['nome']}</strong>.</p>
                    <p>A empresa <strong>{$info['nome_empresa']}</strong> confirmou que recebeu seu aceite e está aguardando você para a entrevista da vaga: <strong>{$info['titulo_vaga']}</strong>.</p>
                    
                    <div style='background: #f8f9fa; padding: 15px; border-radius: 8px; border-left: 5px solid #12929e; margin: 20px 0;'>
                        <strong style='color: #12929e;'>DETALHES DO AGENDAMENTO</strong><br>
                        <strong>Data/Hora:</strong> {$data_f}<br>
                        <strong>Local/Link:</strong> Verifique os detalhes completos no seu Painel do Candidato.
                    </div>
                    
                    <p>Desejamos muito boa sorte no seu processo seletivo!</p>
                    <hr style='border: 0; border-top: 1px solid #eee; margin: 20px 0;'>
                    <p style='font-size: 12px; color: #777;'>Atenciosamente,<br>Equipe Selflix Vagas</p>
                </div>
            </div>";
        
        $mail->send();
    }

    echo json_encode([
        'success' => true, 
        'message' => 'Presença confirmada e e-mail enviado com sucesso!'
    ]);

} catch (Exception $e) {
    echo json_encode([
        'success' => false, 
        'message' => 'Erro: ' . $e->getMessage()
    ]);
}