<?php
require_once 'config.php';

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

$role = $_SESSION['user_role'] ?? 'guest';
$isAdmin = in_array($role, ['admin', 'programmer', 'board']);

try {
    /**
     * SAC 2025 - MOTOR DE FILTRADO DE COMUNICADOS
     * Los administradores deben ver TODO para poder moderar.
     * Los residentes solo ven lo que ya está aprobado.
     */
    $whereClause = $isAdmin ? "" : " WHERE a.status = 'Publicado' ";

    $sql = "SELECT 
                a.id, 
                a.title, 
                a.content, 
                a.priority, 
                a.status, 
                u.full_name as author, 
                a.created_at as date 
            FROM announcements a 
            JOIN users u ON a.author_id = u.id 
            $whereClause
            ORDER BY a.created_at DESC";

    $stmt = $pdo->query($sql);
    $results = $stmt->fetchAll();

    // Formateo de IDs para el frontend
    foreach($results as &$row) {
        $row['id'] = (int)$row['id'];
    }

    response($results);

} catch (PDOException $e) {
    // Si la tabla no existe o falla la conexión, devolvemos un array vacío preventivo
    response([]);
}
?>