using Domain.Dtos.Stock;
using Domain.Entities;
using Domain.Generics;

namespace Core.Interfaces
{
    public interface ILSProductDom
    {
        Task<PagedResult<ELSProduct>> SearchAsync(LSProductSearchParams searchParams);
        Task<ELSProduct?> GetByIdAsync(int id);
        Task<ELSProduct> CreateAsync(ELSProduct entity);
        Task<bool> UpdateAsync(ELSProduct entity);
        Task<bool> DeleteAsync(int id);
        Task<byte[]> ExportToExcelAsync(LSProductSearchParams searchParams);
        byte[] GetImportTemplate();
        List<ProductImportPreviewDto> PreviewImportFromExcel(byte[] fileBytes);
        Task<ProductImportResultDto> ImportProductsAsync(List<ProductImportPreviewDto> items);

    }
}