using Domain.Entities;
using Domain.Generics;

namespace Core.Interfaces
{
    public interface IProductDom
    {
        Task<EProduct> CreateAsync(EProduct entity);
        Task<bool> DeleteAsync(int id);
        Task<byte[]> ExportFilteredProductsToExcelAsync(ProductSearchParams searchParams);
        Task<PagedResult<EProduct>> GetAllAsync(int page = 1, int pageSize = 50);
        Task<EProduct?> GetByIdAsync(int id);
        Task<PagedResult<EProduct>> SearchAsync(string? term, int page = 1, int pageSize = 50);
        Task<bool> UpdateAsync(EProduct entity);
    }
}
