using System.Collections.Generic;
using System.Threading.Tasks;
using Datory;
using GxPress.Common.Page;
using GxPress.Request.TeacherRequest;
using GxPress.Result.Teacher;

namespace GxPress.Repository.Interface.Teacher
{
    public interface ITeacherRepository : IRepository
    {
        Task<bool> DeleteAsync(int id);
        Task<PagedList<Entity.tede2.Teacher.Teacher>> GetAllAsync(TeacherRequest request);
        Task<Entity.tede2.Teacher.Teacher> GetAsync(int id);

        Task<int> InsertAsync(Entity.tede2.Teacher.Teacher note);

        Task<bool> UpdateAsync(Entity.tede2.Teacher.Teacher note);
        Task<IEnumerable<Entity.tede2.Teacher.Teacher>> GetSearchAllAsync(TeacherRequest request);

        Task<IEnumerable<TeacherResult>> GetTeacherResult();
        Task<PagedList<TeacherResult>> GetTeacherResult(TeacherRequest request);
    }
}