<?php
session_start();
header('Content-Type: application/json');
require_once dirname(__DIR__) . '/conexao.php';

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

if (!$agendamento_id) {
    echo json_encode(['success' => false, 'message' => 'ID inválido.']);
    exit;
}

try {
    // Busca a última proposta de data
    $sqlProp = "SELECT data_hora_proposta FROM PropostasReagendamento WHERE agendamento_id = ? AND status = 'Pendente' ORDER BY id DESC LIMIT 1";
    $stmtProp = $pdo->prepare($sqlProp);
    $stmtProp->execute([$agendamento_id]);
    $proposta = $stmtProp->fetch();

    if ($proposta) {
        $pdo->beginTransaction();
        // Atualiza o agendamento com a nova data e status
        $sqlUp = "UPDATE Agendamentos SET data_hora_entrevista = ?, status = 'Confirmado', motivo_reagendamento = NULL WHERE id = ?";
        $pdo->prepare($sqlUp)->execute([$proposta['data_hora_proposta'], $agendamento_id]);
        
        // Marca a proposta como aceita
        $pdo->prepare("UPDATE PropostasReagendamento SET status = 'Aceito' WHERE agendamento_id = ?")->execute([$agendamento_id]);
        
        $pdo->commit();
        echo json_encode(['success' => true, 'message' => 'Novo horário aceito e confirmado!']);
    } else {
        echo json_encode(['success' => false, 'message' => 'Nenhuma proposta pendente encontrada.']);
    }
} catch (Exception $e) {
    if ($pdo->inTransaction()) $pdo->rollBack();
    echo json_encode(['success' => false, 'message' => 'Erro: ' . $e->getMessage()]);
}