DiningCommons.java

package edu.ucsb.cs156.dining.models;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Map;

import static java.lang.Double.parseDouble;

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DiningCommons {
  private String name;
  private String code;
  private Boolean hasDiningCam;
  private Boolean hasSackMeal;
  private Boolean hasTakeOutMeal;
  private Double latitude;
  private Double longitude;


  //Found this on Baeldung for unpacking nested json properties: https://www.baeldung.com/jackson-nested-values
  @JsonProperty("location")
  private void unpackedNested(Map<String,Object> location){
    this.latitude = (Double) location.get("latitude");
    this.longitude = (Double) location.get("longitude");
  }

  public static final String SAMPLE_CARRILLO =
      """
          {
              "name": "Carrillo",
              "code": "M24",
              "hasDiningCam": true,
              "hasSackMeal": false,
              "hasTakeOutMeal" : false,
              "latitude" : null,
              "longitude" : null
          }
      """;
}