<?php
if (session_status() == PHP_SESSION_NONE) { session_start(); }
header('Content-Type: application/json');

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

require_once dirname(__DIR__) . '/conexao.php';

// O seu JavaScript envia apenas o 'id' da candidatura. 
// Precisamos descobrir qual o vaga_id e candidato_id desse registro.
$candidatura_id = $_POST['id'] ?? null;

if (!$candidatura_id) {
    echo json_encode(['success' => false, 'message' => 'ID ausente.']);
    exit();
}

try {
    // 1. Buscar os dados da candidatura na tabela 'candidaturas'
    $sqlBusca = "SELECT vaga_id, candidato_id, tipo_anuncio FROM candidaturas WHERE id = :id";
    $stmtBusca = $pdo->prepare($sqlBusca);
    $stmtBusca->execute([':id' => $candidatura_id]);
    $dados = $stmtBusca->fetch(PDO::FETCH_ASSOC);

    if (!$dados) {
        echo json_encode(['success' => false, 'message' => 'Candidatura não encontrada.']);
        exit();
    }

    $vaga_id = $dados['vaga_id'];
    $candidato_id = $dados['candidato_id'];
    $tipo = (strpos(strtolower($dados['tipo_anuncio']), 'pago') !== false) ? 'pago' : 'gratuito';

    // 2. Verificar se já existe um agendamento para este candidato nesta vaga
    $sqlCheck = "SELECT id FROM Agendamentos WHERE vaga_id = :v AND candidato_id = :c";
    $stmtCheck = $pdo->prepare($sqlCheck);
    $stmtCheck->execute([':v' => $vaga_id, ':c' => $candidato_id]);
    $agendamentoExistente = $stmtCheck->fetch();

    if ($agendamentoExistente) {
        // Se já existe, atualizamos para 'Cancelado'
        $sql = "UPDATE Agendamentos SET status = 'Cancelado' WHERE vaga_id = :v AND candidato_id = :c";
    } else {
        // Se não existe (apenas inscrito), criamos o registro com status 'Cancelado'[cite: 1]
        $sql = "INSERT INTO Agendamentos (vaga_id, candidato_id, status, tipo_anuncio, data_agendamento) 
                VALUES (:v, :c, 'Cancelado', :t, NOW())";
    }

    $stmt = $pdo->prepare($sql);
    $sucesso = $stmt->execute([
        ':v' => $vaga_id,
        ':c' => $candidato_id,
        ':t' => ($agendamentoExistente ? null : $tipo) // O tipo só vai no INSERT
    ]);

    echo json_encode(['success' => $sucesso]);

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