using Core.Dtos;
using Domain.Entities;
using Domain.Generics;

namespace Models.Interfaces
{
    public interface IQuoteDom
    {
        #region Presupuestos
        //Task<PagedResult<EQuoteHeader>> GetAllQuotesAsync(int page = 1, int pageSize = 50);
        //Task<EQuoteHeader?> GetQuoteByIdAsync(int id);
        //Task<IEnumerable<EQuoteHeader>> GetQuotesByCustomerAsync(int customerId);
        Task<PagedResult<QuoteDto>> SearchAsync(int? customerId, string? customerText, string? quoteNumber, int? professionalId, string? professionalText, int? institutionId, string? institutionText, int? patientId, string? patientText, DateTime? issueDateFrom, DateTime? issueDateTo, string? status, int page = 1, int pageSize = 50);
        //Task UpdateQuoteAsync(EQuoteHeader quote);
        //Task DeleteQuoteAsync(int id);
        #endregion
        #region Exportación
        //Task<byte[]> ExportFilteredQuotesToExcelAsync(QuoteSearchParams searchParams);
        #endregion
        #region Guardado completo de presupuesto (encabezado + detalles + roles + ajustes + impuestos)
        Task<string> CreateFullQuoteAsync(EQuoteHeader quote, int formSeriesId);
        #endregion
    }
}