// Copyright © Selmo Technology GmbH. All Rights Reserved

using Novus.Shared.Property;

namespace SelmoStudio.Hmi.Server.SelmoHmi.Model.Dtos
{
    public class ZoneSpecificInfoDto : PropertyBagBase
    {/*
        public ZoneSpecificInfoDto(SelmoZoneType zoneType, ZoneId relatedZone)
        {
            ZoneType = zoneType;
            ZoneId = relatedZone;
        }

        public ZoneSpecificInfoDto(SelmoZoneType zoneType, ZoneId relatedZone, IPropertyBag otherBag) : base(otherBag)
        {
            ZoneType = zoneType;
            ZoneId = relatedZone;
        }

        public ZoneId ZoneId { get; init; }

        public SelmoZoneType ZoneType { get; init; }

        public int VirtualInputDelay
        {
            get
            {
                return Get<int>(ZoneSpecificProperties.VirtualInputDelay);
            }
            init
            {
                Set(ZoneSpecificProperties.VirtualInputDelay, value);
            }
        }

        public string VirtualInput
        {
            get
            {
                return Get<string>(ZoneSpecificProperties.VirtualInput);
            }
            init
            {
                Set(ZoneSpecificProperties.VirtualInput, value);
            }
        }

        public bool VirtualInputInverted
        {
            get
            {
                return Get<bool>(ZoneSpecificProperties.VirtualInputInverted);
            }
            init
            {
                Set(ZoneSpecificProperties.VirtualInputInverted, value);
            }
        }

        public ZoneSignalMode InputMode
        {
            get
            {
                return Get<ZoneSignalMode>(ZoneSpecificProperties.InputMode);
            }
            init
            {
                Set(ZoneSpecificProperties.InputMode, value);
            }
        }

        public int InputAnalogFunction
        {
            get
            {
                return Get<int>(ZoneSpecificProperties.InputAnalogFunction);
            }
            init
            {
                Set(ZoneSpecificProperties.InputAnalogFunction, value);
            }
        }

        public double InputAnalogSetpoint
        {
            get
            {
                return Get<double>(ZoneSpecificProperties.InputAnalogSetpoint);
            }
            init
            {
                Set(ZoneSpecificProperties.InputAnalogSetpoint, value);
            }
        }

        public string InputExpression
        {
            get
            {
                return Get<string>(ZoneSpecificProperties.InputExpression);
            }
            init
            {
                Set(ZoneSpecificProperties.InputExpression, value);
            }
        }

        public ParameterId InputAnalogSetpointParameter
        {
            get
            {
                return Get<ParameterId>(ZoneSpecificProperties.InputAnalogSetpointParameter);
            }
            init
            {
                Set(ZoneSpecificProperties.InputAnalogSetpointParameter, value);
            }
        }

        public ParameterListId InputParameterList
        {
            get
            {
                return Get<ParameterListId>(ZoneSpecificProperties.InputParameterList);
            }
            init
            {
                Set(ZoneSpecificProperties.InputParameterList, value);
            }
        }

        public bool DeclarationAsHardwareInput
        {
            get
            {
                return Get<bool>(ZoneSpecificProperties.DeclarationAsHardwareInput);
            }
            init
            {
                Set(ZoneSpecificProperties.DeclarationAsHardwareInput, value);
            }
        }

        public string InputDescription
        {
            get
            {
                return Get<string>(ZoneSpecificProperties.InputDescription);
            }
            init
            {
                Set(ZoneSpecificProperties.InputDescription, value);
            }
        }

        public string VirtualOutput
        {
            get
            {
                return Get<string>(ZoneSpecificProperties.VirtualOutput);
            }
            init
            {
                Set(ZoneSpecificProperties.VirtualOutput, value);
            }
        }

        public string OutputGroup
        {
            get
            {
                return Get<string>(ZoneSpecificProperties.OutputGroup);
            }
            init
            {
                Set(ZoneSpecificProperties.OutputGroup, value);
            }
        }

        public ZoneSignalMode OutputMode
        {
            get
            {
                return Get<ZoneSignalMode>(ZoneSpecificProperties.OutputMode);
            }
            init
            {
                Set(ZoneSpecificProperties.OutputMode, value);
            }
        }

        public double OutputAnalogValue
        {
            get
            {
                return Get<double>(ZoneSpecificProperties.OutputAnalogValue);
            }
            init
            {
                Set(ZoneSpecificProperties.OutputAnalogValue, value);
            }
        }

        public ParameterId OutputAnalogSetpointParameter
        {
            get
            {
                return Get<ParameterId>(ZoneSpecificProperties.OutputAnalogSetpointParameter);
            }
            init
            {
                Set(ZoneSpecificProperties.OutputAnalogSetpointParameter, value);
            }
        }

        public bool DeclarationAsHardwareOutput
        {
            get
            {
                return Get<bool>(ZoneSpecificProperties.DeclarationAsHardwareOutput);
            }
            init
            {
                Set(ZoneSpecificProperties.DeclarationAsHardwareOutput, value);
            }
        }

        public string OuputDescription
        {
            get
            {
                return Get<string>(ZoneSpecificProperties.OuputDescription);
            }
            init
            {
                Set(ZoneSpecificProperties.OuputDescription, value);
            }
        }

        public ParameterListId OutputParameterList
        {
            get
            {
                return Get<ParameterListId>(ZoneSpecificProperties.OutputParameterList);
            }
            init
            {
                Set(ZoneSpecificProperties.OutputParameterList, value);
            }
        }

        public ZoneId ZoneMapped
        {
            get
            {
                return Get<ZoneId>(ZoneSpecificProperties.ZoneMapped);
            }
            init
            {
                Set(ZoneSpecificProperties.ZoneMapped, value);
            }
        }*/
    }
}