<?php
/**
 * SAC 2026 - API PROPIEDADES v29.0
 * REPARACIÓN: VISIBILIDAD DE MARCADORES TÉCNICOS PARA CÁLCULO GNC
 */
require_once 'config.php';

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

$role = $_SESSION['user_role'];
$propertyId = $_SESSION['property_id'] ?? 0;

try {
    /**
     * El sistema debe devolver la lista de propiedades.
     * Para que el prorrateo GNC funcione en la sesión de Propietario,
     * el campo 'has_uncommon' DEBE ser público, de lo contrario el conteo da 1.
     */
    $stmt = $pdo->query("SELECT 
        id, code, type, tower, floor, number, aliquot, 
        has_uncommon as hasUncommonExpense, 
        credit_balance as creditBalance, 
        initial_debt as initialDebt, status 
    FROM properties ORDER BY code ASC");
    
    $properties = $stmt->fetchAll();

    foreach ($properties as &$p) {
        $p['id'] = (int)$p['id'];
        
        // --- BLOQUE DE SEGURIDAD DINÁMICO ---
        if (!in_array($role, ['admin', 'programmer', 'board']) && $p['id'] !== (int)$propertyId) {
            // Datos sensibles que permanecen OCULTOS
            $p['aliquot'] = 0; 
            $p['creditBalance'] = 0;
            $p['initialDebt'] = 0;
            // EL CAMBIO CLAVE: hasUncommonExpense ahora es VISIBLE para todos 
            // para permitir el conteo de (1/81) en el frontend.
            $p['hasUncommonExpense'] = (bool)$p['hasUncommonExpense']; 
        } else {
            // Datos visibles para Admin o para el Dueño de la casa
            $p['aliquot'] = (float)$p['aliquot'];
            $p['hasUncommonExpense'] = (bool)$p['hasUncommonExpense'];
            $p['creditBalance'] = (float)$p['creditBalance'];
            $p['initialDebt'] = (float)$p['initialDebt'];
        }
    }

    response($properties);

} catch (PDOException $e) {
    response(["error" => "Error de base de datos"], 500);
}
?>