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

$agendamento_id = filter_input(INPUT_POST, 'agendamento_id', FILTER_VALIDATE_INT);

if (!$agendamento_id || !isset($_SESSION['id'])) {
    echo json_encode(['success' => false, 'message' => 'Acesso negado ou ID inválido.']);
    exit;
}

try {
    $pdo->beginTransaction();

    $sql_info = "SELECT c.nome AS cand_nome, c.email AS cand_email, 
                        COALESCE(ap.titulo_vaga, ag.titulo_vaga) AS titulo_vaga, 
                        e.nome_empresa, age.data_hora_entrevista
                 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 = ?";
    
    $stmt = $pdo->prepare($sql_info);
    $stmt->execute([$agendamento_id]);
    $info = $stmt->fetch();

    if ($info) {
        // Lógica de envio de e-mail aqui (usando PHPMailer)
        
        $pdo->prepare("UPDATE Agendamentos SET status = 'Cancelado' WHERE id = ?")->execute([$agendamento_id]);
        $pdo->commit();
        echo json_encode(['success' => true, 'message' => 'Entrevista cancelada e candidato notificado.']);
    } else {
        throw new Exception("Agendamento não encontrado.");
    }
} catch (Exception $e) {
    if ($pdo->inTransaction()) $pdo->rollBack();
    echo json_encode(['success' => false, 'message' => $e->getMessage()]);
}