﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using ArragroCMS.Core.Web.DataTransformationObjects;
using ArragroCMS.Core.Web.Enums;

namespace ArragroCMS.BusinessLayer.Interfaces.Domains
{
    public interface IContents
    {
        Task<ContentDto> AddIncompleteContentAsStashAsync(ContentDtoJsonAsObject contentDtoPost, Guid userId);
        Task<IEnumerable<ContentDto>> AddOrUpdateContentAsync(ContentDtoJsonAsObject contentDtoPost, Guid userId);
        Task<IEnumerable<ContentDto>> DeleteAsync(ContentDtoJsonAsObject contentDtoPost, Guid userId);
        Task<ContentDto> FindAsync(Guid contentId, Status status);
        Task<ContentDto> FindAsync(Guid siteId, string url, Status status);
        Task<IEnumerable<ContentDto>> GetContentWithUrlRouteAndTagsAsync(Guid id);
        Task<IEnumerable<ContentDto>> ResetToPublishedAsync(ContentDtoJsonAsObject contentDtoPost, Guid userId);
        Task UnpublishAsync(ContentDtoJsonAsObject contentDtoPost);
    }
}