<?php
session_start();
include_once '../config/database.php';

header('Content-Type: application/json');

try {
    $database = new Database();
    $conn = $database->getConnection();
    
    $equipo_id = $_POST['equipo_id'] ?? null;
    $cantidad_meses = intval($_POST['cantidad_meses'] ?? 0);
    $dias_inicio_cobro = intval($_POST['dias_inicio_cobro'] ?? 0);
    $dias_ultimo = intval($_POST['dias_ultimo'] ?? 0);
    
    if (!$equipo_id || $cantidad_meses <= 0) {
        throw new Exception("Datos de entrada inválidos");
    }
    
    // Obtener información del equipo
    $stmt = $conn->prepare("SELECT * FROM timportequipos WHERE id = ?");
    $stmt->execute([$equipo_id]);
    $equipo = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$equipo) {
        throw new Exception("Equipo no encontrado");
    }
    
    // Obtener la última cuota del cronograma existente
    $stmt = $conn->prepare("SELECT * FROM tcronogramaequipo WHERE ID = ? ORDER BY nropago DESC LIMIT 1");
    $stmt->execute([$equipo_id]);
    $ultima_cuota = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$ultima_cuota) {
        throw new Exception("No se encontró cronograma existente");
    }
    
    // Calcular la fecha base para las nuevas cuotas (última cuota + 1 mes)
    $fecha_base = new DateTime($ultima_cuota['fechapago']);
    $fecha_base->add(new DateInterval('P1M')); // Agregar 1 mes
    
    // Calcular fecha de inicio de cobranza para la primera nueva cuota
    $fecha_inicio_cobranza = clone $fecha_base;
    $fecha_inicio_cobranza->sub(new DateInterval('P' . $dias_inicio_cobro . 'D'));
    
    // Calcular fecha de pago para la primera nueva cuota
    $fecha_pago = clone $fecha_base;
    $fecha_pago->sub(new DateInterval('P' . $dias_ultimo . 'D'));
    
    $meses_agregados = 0;
    
    // Generar las nuevas cuotas
    for ($i = 1; $i <= $cantidad_meses; $i++) {
        $nro_pago = $ultima_cuota['nropago'] + $i;
        
        // Calcular fechas para esta cuota
        $fecha_cobranza_actual = clone $fecha_inicio_cobranza;
        $fecha_cobranza_actual->add(new DateInterval('P' . ($i - 1) . 'M'));
        
        $fecha_pago_actual = clone $fecha_pago;
        $fecha_pago_actual->add(new DateInterval('P' . ($i - 1) . 'M'));
        
        // Insertar la nueva cuota
        $stmt = $conn->prepare("INSERT INTO tcronogramaequipo 
            (ID, nropago, fechapago, fecha_iniciocobranza, monto, estado) 
            VALUES (?, ?, ?, ?, ?, 'PENDIENTE')");
        
        $stmt->execute([
            $equipo_id,
            $nro_pago,
            $fecha_pago_actual->format('Y-m-d'),
            $fecha_cobranza_actual->format('Y-m-d'),
            $ultima_cuota['monto'] // Usar el mismo monto que la última cuota
        ]);
        
        $meses_agregados++;
    }
    
    echo json_encode([
        'success' => true,
        'meses_agregados' => $meses_agregados,
        'message' => "Se agregaron {$meses_agregados} meses al cronograma"
    ]);
    
} catch (Exception $e) {
    echo json_encode([
        'success' => false,
        'message' => $e->getMessage()
    ]);
}
?>
