<?php
// ? Errores (quitar en producción)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// ? CORS y Headers
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Methods: POST, OPTIONS");
header("Content-Type: application/json; charset=utf-8");

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(200); exit; }

// ? Conexión
require_once(__DIR__ . '/../config.php');
 $mysqli->set_charset("utf8mb4");

// ? JSON
 $input = json_decode(file_get_contents('php://input'), true);
if (!$input) { 
    echo json_encode(['success'=>false,'message'=>'JSON inválido']); 
    exit; 
}

// --- VALIDACIÓN DE PARÁMETROS ---
 $slug_tienda = isset($input['slug_tienda']) ? trim($input['slug_tienda']) : '';
 $credito_id = isset($input['credito_id']) ? (int)$input['credito_id'] : 0;

if (!$slug_tienda || !$credito_id) {
    echo json_encode(['success' => false, 'message' => 'Parámetros inválidos.']);
    exit;
}

try {
    // 1. Obtener datos del crédito
    $stmt = $mysqli->prepare("SELECT c.*, f.numero_factura, cl.nombre as cliente_nombre FROM creditos c JOIN facturas f ON c.factura_id = f.id LEFT JOIN clientes cl ON c.cliente_id = cl.id WHERE c.id = ? AND c.slug_tienda = ?");
    $stmt->bind_param("is", $credito_id, $slug_tienda);
    $stmt->execute();
    $credito = $stmt->get_result()->fetch_assoc();
    $stmt->close();

    if (!$credito) {
        throw new Exception("Crédito no encontrado.");
    }

    // 2. Obtener el plan de pagos
    $stmt = $mysqli->prepare("SELECT * FROM plan_pagos_creditos WHERE credito_id = ? ORDER BY fecha_vencimiento ASC");
    $stmt->bind_param("i", $credito_id);
    $stmt->execute();
    $plan_pago = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
    $stmt->close();

    // 3. Obtener el historial de abonos
    $stmt = $mysqli->prepare("SELECT * FROM abonos_creditos WHERE credito_id = ? ORDER BY fecha_abono DESC");
    $stmt->bind_param("i", $credito_id);
    $stmt->execute();
    $abonos = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
    $stmt->close();

    // 4. Calcular saldo actual (sumando abonos)
    $total_abonos = array_sum(array_column($abonos, 'monto_abono'));
    $saldo_actual = $credito['total_credito_con_interes'] - $total_abonos;

    echo json_encode([
        'success' => true,
        'credito' => $credito,
        'plan_pago' => $plan_pago,
        'abonos' => $abonos,
        'saldo_actual' => $saldo_actual
    ]);

} catch (Exception $e) {
    http_response_code(400);
    echo json_encode(['success' => false, 'message' => $e->getMessage()]);
} finally {
    if (isset($mysqli) && $mysqli) { $mysqli->close(); }
}
?>