using adas_core.Domain.Models;
using adas_core.Domain.Models.MongoModels;
using adas_core.Domain.Models.Providers;
using Microsoft.Extensions.Options;
namespace adas_core.Application.Providers;
///
/// Provides an abstract base class for provider implementations that consume configuration through and create HTTP clients via .
///
///
public abstract class BaseProvider(
IOptions providerSettings,
IHttpClientFactory httpClientFactory)
{
protected IHttpClientFactory HttpClientFactory = httpClientFactory;
protected string Url { get; set; } = providerSettings.Value.Url;
///
/// Asynchronously retrieves the list of clinical observations associated with the specified patient.
///
/// The patient whose observations are being requested.
/// A task that represents the asynchronous operation, containing a list of entries for the patient.
///
public abstract Task> GetObservations(Patient patient);
}