using Domain.Entities; using System.Net.Http.Json; namespace phronCare.UIBlazor.Services.Lookups { public class SalesLookupService : ISalesLookupService { private readonly HttpClient _http; public SalesLookupService(HttpClient http) => _http = http; public Task> SearchCustomersAsync(string filtro) => FetchAsync($"api/lookup/customers?q={Uri.EscapeDataString(filtro)}", filtro); public Task> SearchProfessionalsAsync(string filtro) => FetchAsync($"api/lookup/professionals?q={Uri.EscapeDataString(filtro)}", filtro); public Task> SearchInstitutionsAsync(string filtro) => FetchAsync($"api/lookup/institutions?q={Uri.EscapeDataString(filtro)}", filtro); public Task> SearchPatientsAsync(string filtro) => FetchAsync($"api/lookup/patients?q={Uri.EscapeDataString(filtro)}", filtro); public Task> SearchPeopleAsync(string filtro) => FetchAsync($"api/lookup/people?q={Uri.EscapeDataString(filtro)}", filtro); public async Task> SearchBussinessUnitsAsync(string filtro) { var result = await _http.GetFromJsonAsync>("api/businessunit/all"); return result?.Select(b => new ELookUpItem { Id = b.Id, Nombre = $"{b.Code} | {b.Description}" }) ?? Enumerable.Empty(); } public async Task> FetchAsync(string url,string filtro) { if (string.IsNullOrWhiteSpace(url) || filtro.Length < 3) return Array.Empty(); var items = await _http.GetFromJsonAsync(url); return items ?? Array.Empty(); } public Task> SearchProductsAsync(string filtro) => FetchProductsAsync($"api/lookup/products?q={Uri.EscapeDataString(filtro)}"); public async Task> GetAdjustmentReasonsAsync() { var items = await _http.GetFromJsonAsync("api/adjustmentreason/getall"); return items ?? Array.Empty(); } private async Task> FetchProductsAsync(string url) { var items = await _http.GetFromJsonAsync(url); return items ?? Array.Empty(); } } }