using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using GxPress.Common.Page;
using GxPress.Request.App.Note;
using GxPress.Request.Web;
using GxPress.Result.App.Note;
using GxPress.Result.Web;

namespace GxPress.Service.Interface.Note
{
    public interface INoteService : IService
    {
        Task<bool> InsertNoteAsync(NoteInRequest request);

        Task<PagedList<NotePageListRequest>> NotePageListAsync(NoteSearchPageListRequest request);

        /// <summary>
        /// 获取笔记详情
        /// </summary>
        /// <param name="id"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<NoteDetailResult> GetNoteDetailAsync(int id,int userId);
        /// <summary>
        /// 修改笔记
        /// </summary>
        /// <param name="note"></param>
        /// <returns></returns>
        Task<bool> UpdateNoteAsync(Entity.Note.Note note);
        /// <summary>
        /// 删除笔记
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<bool> DeleteAsync(int id,int userId);
         /// <summary>
        ///查询个人摘录
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<PagedList<NoteUserExtractResult>> GetAllByUserId(NoteUserRequest request);
    }
}