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

namespace adas_core.Domain.Models.DTO.Display;

/// <summary>
/// Represents a data transfer object for display configuration settings.
/// </summary>
public class DisplayConfigDto
{
    public ObjectId Id { get; set; }
    public DisplayConfigEnums.DisplayType Type { get; set; } = DisplayConfigEnums.DisplayType.Unknown;
    public CardConfig? CardConfig { get; set; }
    public ObjectId? CardConfigId { get; set; }
    public ObjectId? DetailConfigId { get; set; }
    public HomeConfig? HomeConfig { get; set; }
    public HeaderConfig? HeaderConfig { get; set; }
    public CardDetailsConfig? DetailConfig { get; set; }
    public List<ObjectId>? DisplaySectionIdList { get; set; }
    public string? Hospital { get; set; }
    public List<Field>? FieldList { get; set; }
    public List<GroupedField>? GroupedFieldList { get; set; }


    #region NotMapped

    public List<MinimalDisplaySection>? DisplaySectionList { get; set; }

    #endregion
}