<?php
session_start();
if (!isset($_SESSION['usuario_id']) || $_SESSION['rol'] !== 'admin') {
    echo json_encode(['success' => false, 'message' => 'No tienes permisos para realizar esta acción']);
    exit;
}

require_once '../includes/config.php';
require_once '../includes/db.php';

if (!isset($_POST['cuota_id']) || !is_numeric($_POST['cuota_id'])) {
    echo json_encode(['success' => false, 'message' => 'ID de cuota no válido']);
    exit;
}

$db = new Database();
$cuota_id = (int)$_POST['cuota_id'];

try {
    $db->query("START TRANSACTION");

    // Primero obtener información de la cuota para el registro
    $stmt = $db->prepare("
        SELECT numero_cuota, venta_id, cliente_id 
        FROM cuotas 
        WHERE id = ?
    ");
    $stmt->execute([$cuota_id]);
    $cuota = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$cuota) {
        throw new Exception('La cuota no existe');
    }

    // Eliminar primero los avisos relacionados con esta cuota
    $stmt = $db->prepare("DELETE FROM avisos_enviados WHERE cuota_id = ?");
    $stmt->execute([$cuota_id]);

    // Ahora eliminar la cuota
    $stmt = $db->prepare("DELETE FROM cuotas WHERE id = ?");
    $stmt->execute([$cuota_id]);

    // Registrar la actividad
    $stmt = $db->prepare("
        INSERT INTO registro_actividad_usuario 
        (id_usuario, tipo_accion, detalles_accion, direccion_ip, agente_usuario)
        VALUES (?, 'ELIMINACION_CUOTA', ?, ?, ?)
    ");

    $descripcion = "Eliminó la cuota #{$cuota['numero_cuota']} de la venta #{$cuota['venta_id']} (incluye avisos relacionados)";
    $ip = $_SERVER['REMOTE_ADDR'] ?? '';
    $userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
    $stmt->execute([$_SESSION['usuario_id'], $descripcion, $ip, $userAgent]);

    $db->query("COMMIT");
    echo json_encode(['success' => true, 'message' => 'Cuota eliminada correctamente']);
} catch (Exception $e) {
    $db->query("ROLLBACK");
    error_log("Error en eliminar_cuota.php: " . $e->getMessage());
    echo json_encode(['success' => false, 'message' => 'Error al eliminar la cuota: ' . $e->getMessage()]);
}
?>
