using Exam.Infrastructure.Data.Entity;
using Exam.Infrastructure.Data.Interface;
using XF.Domain.Dependency;

namespace Hotline.Repository.SqlSugar.Exam.Interface
{
    public interface IQueryService<TView, TActionRequest, TQueryRequest> : IDomainService where TView : IViewResponse
        where TQueryRequest : IQueryRequest
        where TActionRequest : IActionRequest
    {
        Task<(int, List<TView>)> GetListAsync(TQueryRequest queryRequest);

        Task<PageViewResponse<TView>> GetPagedListAsync(TQueryRequest queryRequest);

        Task<TActionRequest> GetAsync(EntityQueryRequest entityQueryRequest);
    }
}
