<?php
/**
 * SAC 2026 - PREFILL ENGINE v1.2 (PUENTE BALANCE -> CUOTAS)
 * Arquitecto: Andres Mathison
 * Objetivo: Recuperar facturas marcadas como 'prefill_fee' para un mes específico.
 */
require_once 'config.php';

if (!isset($_SESSION['user_id'])) response(["error" => "No autorizado"], 401);

$month = isset($_GET['month']) ? (int)$_GET['month'] : null;
$year = isset($_GET['year']) ? (int)$_GET['year'] : null;

if ($month === null || $year === null) {
    response(["error" => "Periodo de pre-llenado no definido"], 400);
}

try {
    // Buscamos egresos que:
    // 1. Tengan prefill_fee = 1 (Marcados como automáticos)
    // 2. Tengan un target_month y target_year que coincida con lo solicitado
    $stmt = $pdo->prepare("SELECT 
                            description, 
                            amount_usd as amountUsd, 
                            fee_category as category, 
                            is_uncommon as isUncommon, 
                            is_special as isSpecial, 
                            special_props_json as specialPropertyIds 
                          FROM pending_bills 
                          WHERE prefill_fee = 1 
                          AND target_month = ? 
                          AND target_year = ?");
    $stmt->execute([$month, $year]);
    $items = $stmt->fetchAll();

    foreach ($items as &$it) {
        $it['amountUsd'] = (float)$it['amountUsd'];
        $it['isUncommon'] = (bool)$it['isUncommon'];
        $it['isSpecial'] = (bool)$it['isSpecial'];
        
        // Decodificamos el JSON de unidades especiales para que el frontend lo use de inmediato
        $decodedProps = json_decode($it['specialPropertyIds'] ?? '[]', true);
        $it['specialPropertyIds'] = is_array($decodedProps) ? $decodedProps : [];
    }

    response($items);
} catch (PDOException $e) {
    response(["error" => "Fallo en motor de extracción: " . $e->getMessage()], 500);
}
?>