package com.zy.asrs.domain.path; import lombok.Data; import java.io.Serializable; import java.util.ArrayList; import java.util.List; @Data public class StationPathRuleConfig implements Serializable { private static final long serialVersionUID = 1L; private HardConstraint hard = new HardConstraint(); private WaypointConstraint waypoint = new WaypointConstraint(); private SoftPreference soft = new SoftPreference(); private FallbackPolicy fallback = new FallbackPolicy(); @Data public static class HardConstraint implements Serializable { private static final long serialVersionUID = 1L; private List mustPassStations = new ArrayList<>(); private List forbidStations = new ArrayList<>(); private List mustPassEdges = new ArrayList<>(); private List forbidEdges = new ArrayList<>(); } @Data public static class WaypointConstraint implements Serializable { private static final long serialVersionUID = 1L; private List stations = new ArrayList<>(); } @Data public static class SoftPreference implements Serializable { private static final long serialVersionUID = 1L; private List keyStations = new ArrayList<>(); private List preferredPath = new ArrayList<>(); private Double deviationWeight = 6.0d; private Integer maxOffPathCount = 2; } @Data public static class FallbackPolicy implements Serializable { private static final long serialVersionUID = 1L; private Boolean strictWaypoint = false; private Boolean allowSoftDegrade = true; } }