using adas_core.Domain.Enums;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
using LightBeacon = adas_core.Domain.Models.MongoModels.LightBeacon;
namespace adas_core.Domain.Models.DTO;
///
/// Represents a data transfer object for point-of-care information, used to transfer point-of-care data between application layers or services.
///
public class PointOfCareDto
{
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 PointOfCareConfigurationDto? 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 a data transfer object (DTO) for point-of-care configuration settings, used to transfer configuration data between layers or systems.
///
public class PointOfCareConfigurationDto
{
public List BeaconList { get; set; } = [];
public List CameraList { get; set; } = [];
public List? RelayList { get; 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; }
}