using adas_core.Domain.Models.MongoModels;

namespace adas_core.Domain.Models.Responses;

/// <summary>
/// Encapsulates the outcome of a <see cref="Patient"/> lookup, bundling the matched <see cref="Patient"/>, the corresponding archived <see cref="Patient"/>, the related <see cref="Admission"/>, and flags that indicate archive status and result availability.
/// </summary>
/// <!-- aidoc:v1 sig=461ed22 -->
public class PatientSearch(
    Patient? patient,
    Patient? archivePatient,
    Admission? admission,
    bool isArchived,
    bool hasResult)
{
    public Patient? Patient { get; set; } = patient;
    public Patient? ArchivedPatient { get; set; } = archivePatient;
    public Admission? Admission { get; set; } = admission;
    public bool IsArchived { get; set; } = isArchived;
    public bool HasResult { get; set; } = hasResult;
}