namespace adas_core.Domain.Models.Providers;

/// <summary>
/// Represents an abstract base class for result models used to predict medication outcomes based on the ADAS (Alzheimer's Disease Assessment Scale).
/// </summary>
/// <remarks>
/// This class is intended to be inherited by concrete result model types that provide specific prediction logic for medication-related ADAS assessments.
/// </remarks>
public abstract class ResultModelPredictMedicationAdas
{
    public string MedicineIdentifier { get; set; } = string.Empty;

    public string MedicineText { get; set; } = string.Empty;

    public string TreatmentPatientId { get; set; } = string.Empty;

    public string Gender { get; set; } = string.Empty;

    public string BirthDate { get; set; } = string.Empty;

    public string CodingSystem { get; set; } = string.Empty;

    public string PatientNumber { get; set; } = string.Empty;

    public double DegreeSimilarity { get; set; }

    /// <summary>
    /// Returns a string representation combining the medicine text and its degree of similarity, separated by a pipe character.
    /// </summary>
    /// <returns>A formatted string containing the <c>MedicineText</c> and <c>DegreeSimilarity</c> values joined by a pipe (<c>|</c>) separator.</returns>
    public override string ToString()
        {
            return $"{MedicineText} | {DegreeSimilarity}";
        }
}