<?php

declare(strict_types=1);

namespace ROITheme\Shared\Infrastructure\Services;

/**
 * Helper para verificar visibilidad basada en estado de autenticación del usuario.
 *
 * Similar a PageVisibilityHelper, proporciona método estático para evaluar
 * si un componente debe ocultarse para usuarios logueados.
 *
 * @package ROITheme\Shared\Infrastructure\Services
 * @since 1.0.0
 */
final class UserVisibilityHelper
{
    /**
     * Verifica si el componente debe mostrarse según estado de login.
     *
     * @param array $visibilityData Datos del grupo 'visibility' del componente
     * @return bool true si debe mostrarse, false si debe ocultarse
     */
    public static function shouldShowForUser(array $visibilityData): bool
    {
        $hideForLoggedIn = $visibilityData['hide_for_logged_in'] ?? false;

        // Si la opción está activada Y el usuario está logueado, ocultar
        if ($hideForLoggedIn && is_user_logged_in()) {
            return false;
        }

        return true;
    }
}
