// Copyright © Selmo Technology GmbH. All Rights Reserved

using Newtonsoft.Json;
using Novus.Shared.Dto;
using Novus.Shared.Id;
using Novus.Shared.Property;
using SelmoStudio.Hmi.Server.SelmoHmi.Sequence.Model.Ids;
using SelmoStudio.Hmi.Server.SelmoHmi.Shared.TestImpl;

namespace SelmoStudio.Hmi.Server.SelmoHmi.Sequence.Model.Dto
{
    public class LogicDiagramConnection : PropertyBasedEntity
    {
        [JsonIgnore]
        public override IGuidBasedId InternalStorageId => Id;

        [JsonProperty]
        public LogicDiagramConnectionId Id { get; set; }

        [JsonProperty]
        public DiagramConnectionType Type { get; set; }

        [JsonProperty]
        public double DiagramPositionX { get; set; }

        [JsonProperty]
        public double DiagramPositionY { get; set; }

        [JsonProperty]
        public double DiagramBezierStartPointX { get; set; }

        [JsonProperty]
        public double DiagramBezierStartPointY { get; set; }

        [JsonProperty]
        public double DiagramBezierEndPointX { get; set; }

        [JsonProperty]
        public double DiagramBezierEndPointY { get; set; }

        [JsonProperty]
        public double DiagramStartPointX { get; set; }

        [JsonProperty]
        public double DiagramStartPointY { get; set; }

        [JsonProperty]
        public double DiagramEndPointX { get; set; }

        [JsonProperty]
        public double DiagramEndPointY { get; set; }

        [JsonProperty]
        public LogicDiagramStepId Source { get; set; }

        [JsonProperty]
        public LogicDiagramStepId Target { get; set; }

        [JsonProperty]
        public string SourceConnectorPosition { get; set; }

        [JsonProperty]
        public string TargetConnectorPosition { get; set; }
    }
}