using System.Text.Json.Serialization;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;

namespace adas_core.Domain.Models.DTO;

/// <summary>
/// Represents a data transfer object that encapsulates information about a unit.
/// </summary>
public class UnitInfoDto
{
    [JsonConstructor]
    public UnitInfoDto()
    {
    }

    public UnitInfoDto(Unit? unit)
    {
        Id = unit?.Id;
        Name = unit?.Name ?? string.Empty;
        Title = unit?.Name ?? string.Empty;
    }

    public ObjectId? Id { get; set; }
    public string Name { get; set; } = string.Empty;
    public string Title { get; set; } = string.Empty;
    public string? ConfigObservationId { get; set; }
    public long? Admissions { get; set; }
    public long? Discharges { get; set; }
    public long? Displays { get; set; }
    public long? Patients { get; set; }
    public long? PointOfCares { get; set; }
    public long? VirtualPointOfCares { get; set; }
}