using adas_core.Domain.Enums;
using adas_core.Domain.Models;
using adas_core.Domain.Models.GroupedObservations;
using adas_core.Domain.Models.Masters;
using MongoDB.Bson;

namespace adas_core.Application.Subscriptions;

/// <summary>
/// Represents a WebSocket subscriber identified by a unique string identifier.
/// </summary>
public class WsSubscriber(string id)
{
    public string? UserName;
    public string Id { get; set; } = id;
    public ObjectId? DisplayId { get; set; }
    public List<PatientLocation> Locations { get; set; } = [];
    public List<ObjectId> LocationIds { get; set; } = [];
    public string? Box { get; set; }
    public string? Section { get; set; }
    public string? Version { get; set; }
    public List<GroupedField>? GroupedFields { get; set; }
    public LocaleEnum? Locale { get; set; }
    public SubscriptionEnum.WsType? SubscriptionType { get; set; }
}