using RobotNet.MapShares.Dtos; using RobotNet.MapShares.Enums; namespace RobotNet.MapShares.Models; public enum MapEditorBackupType { Node, ControlPoint1Edge, ControlPoint2Edge, Zone, MoveNode, MoveEdge, Copy, MergeNode, SplitNode } public class MapEditorBackup { public MapEditorBackupType Type { get; set; } public Guid Id { get; set; } public object Obj { get; set; } = null!; } public class MapEditorBackupModel { public MapEditorBackup[] Steps { get; set; } = []; } public class PositionBackup { public Guid Id { get; set; } public double X { get; set; } public double Y { get; set; } } public class EdgeBackup { public Guid Id { get; set; } public TrajectoryDegree TrajectoryDegree { get; set; } public double StartX { get; set; } public double StartY { get; set; } public double EndX { get; set; } public double EndY { get; set; } public double ControlPoint1X { get; set; } public double ControlPoint1Y { get; set; } public double ControlPoint2X { get; set; } public double ControlPoint2Y { get; set; } } public class ZoneShapeBackup { public int NodeChange { get; set; } public double X1 { get; set; } public double Y1 { get; set; } public double X2 { get; set; } public double Y2 { get; set; } public double X3 { get; set; } public double Y3 { get; set; } public double X4 { get; set; } public double Y4 { get; set; } } public class SplitNodeBackup { public Guid NodeId { get; set; } public Dictionary EdgeSplit { get; set; } = []; } public class MergeNodeUpdate { public Guid NodeId { get; set; } public Dictionary EdgesMerge { get; set; } = []; }