using Domain.Entities;
using Domain.Generics;

namespace Core.Interfaces
{
    public interface IProfessionalDom
    {
        Task<EProfessional> CreateAsync(EProfessional entity);
        Task<bool> DeleteAsync(int id);
        Task<byte[]> ExportFilteredProfessionalsToExcelAsync(ProfessionalSearchParams searchParams);
        Task<PagedResult<EProfessional>> GetAllAsync(int page = 1, int pageSize = 50);
        Task<EProfessional?> GetByIdAsync(int id);
        Task<PagedResult<EProfessional>> SearchAsync(string? fullname, string? document, string? type,
            int page = 1, int pageSize = 50);
        Task<bool> UpdateAsync(EProfessional entity);
    }
}
