<?php
declare(strict_types=1);

namespace ROITheme\Shared\Domain\Constants;

/**
 * Constantes de visibilidad por defecto para componentes
 *
 * Centraliza los valores por defecto para cumplir con DRY.
 * Usado por:
 * - EvaluatePageVisibilityUseCase (cuando no hay config en BD)
 * - MigratePageVisibilityService (para crear registros iniciales)
 *
 * @package ROITheme\Shared\Domain\Constants
 */
final class VisibilityDefaults
{
    /**
     * Configuración de visibilidad por defecto para nuevos componentes
     *
     * - Home: SÍ mostrar (página principal)
     * - Posts: SÍ mostrar (artículos del blog)
     * - Pages: SÍ mostrar (páginas estáticas)
     * - Archives: NO mostrar (listados de categorías/tags)
     * - Search: NO mostrar (resultados de búsqueda)
     */
    public const DEFAULT_VISIBILITY = [
        'show_on_home' => true,
        'show_on_posts' => true,
        'show_on_pages' => true,
        'show_on_archives' => false,
        'show_on_search' => false,
    ];

    /**
     * Lista de campos de visibilidad válidos
     */
    public const VISIBILITY_FIELDS = [
        'show_on_home',
        'show_on_posts',
        'show_on_pages',
        'show_on_archives',
        'show_on_search',
    ];
}
