namespace adas_core.Domain.Models;

/// <summary>
/// Represents a patient data model associated with the ICCA (IntelliSpace Critical Care and Anesthesia) system.
/// </summary>
public class PatientIcca
{
    public PatientLocation Location { get; set; } = new(string.Empty, string.Empty);

    public string? PatientNumber { get; set; }

    public string? PatientId { get; set; }
    public DateTime AdmitTime { get; set; }


    /// <summary>
    /// Creates a deep copy of the current <see cref="PatientIcca"/> instance, duplicating the <see cref="Location"/>, <see cref="PatientNumber"/>, and <see cref="PatientId"/> so that modifications to the copy do not affect the original object.
    /// </summary>
    /// <returns>A new <see cref="PatientIcca"/> instance with independently copied reference-typed members.</returns>
    public PatientIcca DeepCopy()
        {
            var other = (PatientIcca)MemberwiseClone();
            other.Location = new PatientLocation(Location.UnitName, Location.Bed);
            other.PatientNumber = new string(PatientNumber);
            other.PatientId = new string(PatientId);
            other.AdmitTime = AdmitTime;
            return other;
        }
}