using adas_core.Domain.Enums;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;

namespace adas_core.Domain.Models.DTO;

/// <summary>
/// Represents a data transfer object (DTO) used to encapsulate and transfer device-related information between application layers or services.
/// </summary>
public class DeviceDto
{
    public DeviceEvent? Event { get; set; }
    public DeviceType DeviceType { get; set; }
    public string? MacAddr { get; set; }
    public string? SerialNumber { get; set; }
    public string? Name { get; set; } 
    public int? Battery { get; set; }
    public string? Color { get; set; }
    public bool Connected { get; set; }
    public bool Ready { get; set; }
    public string? Uuid { get; set; }
    public string? Key { get; set; }
    public DateTime CreatedAt { get; set; }
    public DateTime UpdatedAt { get; set; }
    public List<ObjectId>? PointOfCareIds { get; set; } = new(); 
    public DeviceSettings? Settings { get; set; }
}
/// <summary>
/// Represents an event associated with a device, encapsulating information about a device-related occurrence or state change.
/// </summary>
/// <remarks>
/// This class is intended to be used as a data carrier for device event notifications or processing.
/// </remarks>
public class DeviceEvent
{
    public ClickType? ClickType { get; set; } 
}