using Grand.Domain.Catalog;

namespace Grand.Business.Core.Interfaces.Catalog.Collections
{
    public interface ICollectionLayoutService
    {

        /// <summary>
        /// Gets all existing collection layouts
        /// </summary>
        /// <returns>Collection layouts</returns>
        Task<IList<CollectionLayout>> GetAllCollectionLayouts();

        /// <summary>
        /// Gets an existing collection layout
        /// </summary>
        /// <param name="collectionLayoutId">Collection layout id</param>
        /// <returns>Collection layout</returns>
        Task<CollectionLayout> GetCollectionLayoutById(string collectionLayoutId);

        /// <summary>
        /// Inserts a new collection layout
        /// </summary>
        /// <param name="collectionLayout">Collection layout</param>
        Task InsertCollectionLayout(CollectionLayout collectionLayout);

        /// <summary>
        /// Updates the existing collection layout
        /// </summary>
        /// <param name="collectionLayout">Collection layout</param>
        Task UpdateCollectionLayout(CollectionLayout collectionLayout);
        /// <summary>
        /// Deletes existing collection layout
        /// </summary>
        /// <param name="collectionLayout">Collection layout</param>
        Task DeleteCollectionLayout(CollectionLayout collectionLayout);
    }
}
