using QYZH.InteractiveMagazine.Models;
using QYZH.InteractiveMagazine.Models.Base;
using QYZH.InteractiveMagazine.Models.Dto.Journal;
using QYZH.InteractiveMagazine.Models.Entity;

namespace QYZH.InteractiveMagazine.IService;

public interface IJournalCatalogService : IBaseService<JournalCatalog>
{
    Task<List<JournalCatalog>> DetailAsync(long JournalId);

    Task<long> InsertAsync(JournalCatalogInput input);

    Task<long> ImportAsync(JournalImportDto input);

    Task<bool> UpdateAsync(JournalCatalogUpdateInput input);

    Task<bool> DeleteAsync(long id);

    Task<bool> MoveAsync(MoveInput input);

    //Task<bool> CopyAsync(CopyInput input);

    /// <summary>
    /// 获取书分类及页码
    /// </summary>
    /// <param name="JournalId"></param>
    /// <returns></returns>
    Task<List<JournalCatalogTreeListDto>> GetJournalCatalogListAsync(long JournalId);

    /// <summary>
    /// 获取书分类及页码
    /// </summary>
    /// <param name="JournalId"></param>
    /// <returns></returns>
    Task<List<IcrJournalCatalogTreeDto>> GetJournalCataloTreeAsync(long JournalId);

    /// <summary>
    /// 导入书籍目录
    /// </summary>
    /// <param name="JournalId"></param>
    /// <param name="dtos"></param>
    /// <returns></returns>
    Task<bool> ImportCatalogAsync(long JournalId, List<JournalCatalogTreeListDto> dtos);
}
