using adas_core.Domain.Enums;
using MongoDB.Bson;
namespace adas_core.Domain.Models.MongoModels;
///
/// Represents a point-of-care location or entity within a healthcare delivery context.
///
///
/// This class serves as a data model for capturing information related to a specific point where care is administered to patients.
///
public class PointOfCare
{
public ObjectId Id { get; set; }
public string Room { get; set; } = string.Empty;
public string Bed { get; set; } = string.Empty;
public string? Hall { get; set; } = string.Empty;
public ObjectId UnitId { get; set; }
public PointOfCareConfiguration? Configuration { get; set; }
public StatusEnum.PointOfCare Status { get; set; }
public ObjectId? AdmissionId { get; set; }
#region Unmap
public string UnitName { get; set; } = string.Empty;
public Unit? Unit { get; set; }
public PatientLocation Location => new(UnitName, Bed, Room);
public List Observations { get; set; } = [];
public bool? HasPatient { get; set; }
public ObjectId? Patientid { get; set; }
public Patient? Patient { get; set; }
public bool? IsActive { get; set; }
public bool? IsVisible { get; set; }
public Admission? Admission { get; set; }
#endregion
}
///
/// Represents the configuration settings for a point-of-care system, encapsulating the parameters and options required to manage its behavior.
///
public class PointOfCareConfiguration
{
public List? BeaconIdList { get; set; } = [];
public List? CameraIdList { get; set; } = [];
public List? RelayIdList { get; set; }
public List? BeaconList { get; private set; }
public List? CameraList { get; private set; }
public List? RelayList { get; private set; }
public string? Type { get; set; }
// Esta parte hay que tenerla en cuenta al momento de lanzar las grabaciones automaticas y manuales para la API de OR
// OR espera recibir roomId
public int? Id { get; set; }
}