<?php
declare(strict_types=1);

namespace ROITheme\Public\CustomCSSManager\Application\UseCases;

use ROITheme\Shared\Domain\Contracts\CSSSnippetRepositoryInterface;

/**
 * Caso de uso: Obtener snippets diferidos para página actual
 *
 * Contexto: Public (renderizado)
 * Se ejecuta en wp_footer para cargar CSS no crítico.
 */
final class GetDeferredSnippetsUseCase
{
    public function __construct(
        private readonly CSSSnippetRepositoryInterface $repository
    ) {}

    /**
     * Ejecuta la obtención de snippets diferidos
     *
     * @param string $pageType Tipo de página actual ('home', 'posts', 'pages', 'archives', 'all')
     * @return array<array> Snippets diferidos aplicables a la página
     */
    public function execute(string $pageType): array
    {
        return $this->repository->getForPage('deferred', $pageType);
    }
}
