// Copyright © Selmo Technology GmbH. All Rights Reserved

using Novus.Shared.Dto;
using Novus.Shared.Id;
using SelmoStudio.Hmi.Common.SelmoProject.Cmz;
using SelmoStudio.Hmi.Server.SelmoHmi.Cmz.Model.Ids;
using SelmoStudio.Hmi.Server.SelmoHmi.Group.Model.Ids;
using SelmoStudio.Hmi.Server.SelmoHmi.Parameter.Model.Ids;

namespace SelmoStudio.Hmi.Server.SelmoHmi.Cmz.Model.Dtos
{
    public record CmzDto : IStorageDto
    {
        IGuidBasedId IDto.Id => Id;

        public CmzId Id { get; init; }

        public string Name { get; init; }

        public string Description { get; init; }

        public string VariableName { get; init; }

        public string DisplayText { get; init; }

        public bool Inverted { get; init; }

        public bool DeclareAsInput { get; init; }

        public bool AutoReset { get; init; }

        public int ErrorDelay { get; init; }

        public string Expression { get; init; }

        public CmzType CmzType { get; init; }

        public ParameterId ConnectedParameter { get; init; }

        public ParameterId ParameterWindowLower { get; init; }

        public ParameterId ParameterWindowUpper { get; init; }

        public GroupId Group { get; init; }
    }
}