using System.Collections.Generic;
using System.Threading.Tasks;
using GxPress.Common.Page;
using GxPress.Request.Media;
using GxPress.Result.Media;

namespace GxPress.Service.Interface.Media
{
    public interface IMediaService : IService
    {
        Task<bool> InsertAsync(MediaResult result);
        Task<MediaResult> GetAsync(int id);
        /// <summary>
        /// 获取书籍详情
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<BookMediaResult> GetBookMediaResultAsync(int id, int userId);

        /// <summary>
        /// 获取章节内容
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<string> GetBookMediaContentResultAsync(BookCatalogRequest request);
        /// <summary>
        /// 获取视频详情
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<VideoMediaResult> GetVideoMediaResultAsync(int id);
        /// <summary>
        /// 明栏
        /// </summary>
        /// <returns></returns>
        Task<IEnumerable<MediaStarLableResult>> GetMediaStarLableResultAysnc();
        /// <summary>
        /// 明栏分页
        /// </summary>
        /// <returns></returns>
        Task<PagedList<MediaCathedraResult>> GetStarLablePageAsync(MediaStarLableRequest request);
    }
}