package de.avatic.lcc.e2e.testdata;

/**
 * Expected output values for a single destination in a test case.
 * Nullable fields (Integer, String) indicate the UI shows "-" when no main run/D2D is configured.
 */
public record DestinationExpected(
    Integer transitTime,
    Integer stackedLayers,
    Integer containerUnitCount,
    String containerType,
    String limitingFactor
) {
    public static Builder builder() {
        return new Builder();
    }

    public static class Builder {
        private Integer transitTime;
        private Integer stackedLayers;
        private Integer containerUnitCount;
        private String containerType;
        private String limitingFactor;

        public Builder transitTime(Integer transitTime) {
            this.transitTime = transitTime;
            return this;
        }

        public Builder stackedLayers(Integer stackedLayers) {
            this.stackedLayers = stackedLayers;
            return this;
        }

        public Builder containerUnitCount(Integer containerUnitCount) {
            this.containerUnitCount = containerUnitCount;
            return this;
        }

        public Builder containerType(String containerType) {
            this.containerType = containerType;
            return this;
        }

        public Builder limitingFactor(String limitingFactor) {
            this.limitingFactor = limitingFactor;
            return this;
        }

        public DestinationExpected build() {
            return new DestinationExpected(
                transitTime, stackedLayers, containerUnitCount, containerType, limitingFactor
            );
        }
    }
}
