using System.Collections.Generic;
using EventsAppQuest.Domain.Models;

namespace EventsAppQuest.Application.Services
{
    /// <summary>
    /// Contrato para serviço de presets de layout / cenários base reutilizáveis.
    /// </summary>
    public interface ILayoutPresetService
    {
        /// <summary>Preset por id.</summary>
        EventLayoutPreset GetById(string presetId);

        /// <summary>Presets que se aplicam ao template.</summary>
        IReadOnlyList<EventLayoutPreset> GetByTemplateId(string templateId);

        /// <summary>Presets que se aplicam à categoria.</summary>
        IReadOnlyList<EventLayoutPreset> GetByCategoryId(string categoryId);

        /// <summary>Presets disponíveis para o projeto atual (por categoria/template).</summary>
        IReadOnlyList<EventLayoutPreset> GetAvailableForProject(EventProject project);

        /// <summary>Itens do preset (ShowroomItemId, PreferredSlotId, IsRequired, DisplayOrder).</summary>
        IReadOnlyList<EventLayoutPresetItem> GetItemsByPresetId(string presetId);
    }
}
