// Copyright © Selmo Technology GmbH. All Rights Reserved

using Novus.Shared.Dto;
using Novus.Shared.Id;
using SelmoStudio.Hmi.Server.SelmoHmi.Cmz.Model.Ids;
using SelmoStudio.Hmi.Server.SelmoHmi.Model.Ids;
using SelmoStudio.Hmi.Server.SelmoHmi.Parameter.Model.Ids;
using SelmoStudio.Hmi.Server.SelmoHmi.Sequence.Model.Ids;

namespace SelmoStudio.Hmi.Server.SelmoHmi.Model.Dtos
{
    public record HardwareZoneInfoDto : IStorageDto
    {
        public HardwareZoneInfoDto()
        {
            Id = new(Guid.NewGuid());
            Name = string.Empty;
            Description = string.Empty;
            SequenceIds = new();
            CmzCollectionIds = new();
            ParameterCollectionIds = new();
        }

        IGuidBasedId IDto.Id => Id;

        public HardwareZoneId Id { get; init; }

        public string Name { get; init; }

        public string Description { get; init; }

        public List<SequenceId> SequenceIds { get; init; }

        public List<CmzCollectionId> CmzCollectionIds { get; init; }

        public List<ParameterCollectionId> ParameterCollectionIds { get; init; }
    }
}