using Domain.Entities; using System.Net.Http.Json; namespace phronCare.UIBlazor.Services.Sales.Quotes { public class QuoteService : IQuoteService { private readonly HttpClient _http; public QuoteService(HttpClient http) { _http = http; } /// /// Envía el EQuoteHeader junto con el formSeriesId al backend /// y recibe el número de presupuesto generado o un error. /// public async Task CreateFullQuoteAsync(EQuoteHeader quote, int formSeriesId) { // 1) Creamos el DTO request tal cual lo espera el controller var request = new CreateFullQuoteRequest { Quote = quote, FormSeriesId = formSeriesId }; // 2) Enviamos ese DTO al endpoint var response = await _http.PostAsJsonAsync("/api/quote/createfull", request); //var url = $"/api/quote/createfull?formSeriesId={formSeriesId}"; //var response = await _http.PostAsJsonAsync(url, quote); if (!response.IsSuccessStatusCode) { // Leer mensaje de error del servidor var serverMessage = await response.Content.ReadAsStringAsync(); return new CreateQuoteResult { Success = false, ErrorMessage = serverMessage }; } // Deserializar el resultado esperado var result = await response.Content.ReadFromJsonAsync(); return result!; } } public class CreateQuoteResult { public bool Success { get; set; } public string QuoteNumber { get; set; } = string.Empty; public string ErrorMessage { get; set; } = string.Empty; } public class CreateFullQuoteRequest { public EQuoteHeader Quote { get; set; } = default!; public int FormSeriesId { get; set; } } }