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

namespace phronCare.UIBlazor.Services.Sales.Quotes
{
    public interface IQuoteService
    {
        Task<bool> AuthorizeQuoteAsync(QuoteAuthorizationRequest request);
        Task<CreateQuoteResult> CreateFullQuoteAsync(EQuoteHeader quote, int formSeriesId);
        Task ExportFilteredAsync(QuoteSearchParams searchParams);
        Task ExportPdfAsync(int quoteId, string quoteNumber);
        Task<QuoteDto?> GetDtoByIdAsync(int id);
        Task<PagedResult<QuoteDto>> SearchAsync(int? customerId = null, string? customerText = null, string? quoteNumber = null, int? professionalId = null, string? professionalText = null, int? institutionId = null, string? institutionText = null, int? patientId = null, string? patientText = null, string? status = null, DateTime? issueDateFrom = null, DateTime? issueDateTo = null, int page = 1, int pageSize = 10);
    }
}
