IndoorDirectionResponse.java
package com.soen390.backend.object;
import java.util.List;
public class IndoorDirectionResponse {
private String distance;
private String duration;
private BuildingInfo buildingInfo;
private List<IndoorRouteStep> steps;
private List<RoutePoint> routePoints;
private String stairMessage; // e.g. "You need to go up/down the stairs" or null
public IndoorDirectionResponse(
String distance,
String duration,
BuildingInfo buildingInfo,
List<IndoorRouteStep> steps,
List<RoutePoint> routePoints) {
this.distance = distance;
this.duration = duration;
this.buildingInfo = buildingInfo;
this.steps = steps;
this.routePoints = routePoints;
}
public String getStairMessage() {
return stairMessage;
}
public void setStairMessage(String stairMessage) {
this.stairMessage = stairMessage;
}
public String getDistance() {
return distance;
}
public String getDuration() {
return duration;
}
public String getBuildingName() {
return buildingInfo.name();
}
public String getBuildingId() {
return buildingInfo.id();
}
public String getStartFloor() {
return buildingInfo.startFloor();
}
public String getEndFloor() {
return buildingInfo.endFloor();
}
public List<IndoorRouteStep> getSteps() {
return steps;
}
public List<RoutePoint> getRoutePoints() {
return routePoints;
}
/**
* Groups the four building-related fields that were previously separate constructor parameters.
*/
public record BuildingInfo(String name, String id, String startFloor, String endFloor) {}
public static class RoutePoint {
private double x;
private double y;
private String label;
public RoutePoint(double x, double y) {
this(x, y, null);
}
public RoutePoint(double x, double y, String label) {
this.x = x;
this.y = y;
this.label = label;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
public String getLabel() {
return label;
}
}
}