// Path: point-of-sale-app/service-sdk/src/main/java/com/google/abmedge/dto/Item.java
// public class Item {
// 
//   private UUID id;
//   private String name;
//   private String type;
//   private Number price;
//   private String imageUrl;
//   private long quantity;
//   private List<String> labels;
// 
//   public Item() {
//     this.labels = new ArrayList<>();
//   }
// 
//   public static Item from(Item item) {
//     Item copyItem = new Item();
//     copyItem.id = item.id;
//     copyItem.type = item.type;
//     copyItem.name = item.name;
//     copyItem.price = item.price;
//     copyItem.imageUrl = item.imageUrl;
//     copyItem.quantity = item.quantity;
//     copyItem.getLabels().addAll(item.getLabels());
//     return copyItem;
//   }
// 
//   public UUID getId() {
//     return id;
//   }
// 
//   public void setId(UUID id) {
//     this.id = id;
//   }
// 
//   public String getName() {
//     return name;
//   }
// 
//   public void setName(String name) {
//     this.name = name;
//   }
// 
//   public String getType() {
//     return type;
//   }
// 
//   public void setType(String type) {
//     this.type = type;
//   }
// 
//   public long getQuantity() {
//     return quantity;
//   }
// 
//   public void setQuantity(long quantity) {
//     this.quantity = quantity;
//   }
// 
//   public Number getPrice() {
//     return price;
//   }
// 
//   public void setPrice(Number price) {
//     this.price = price;
//   }
// 
//   public String getImageUrl() {
//     return imageUrl;
//   }
// 
//   public void setImageUrl(String imageUrl) {
//     this.imageUrl = imageUrl;
//   }
// 
//   public List<String> getLabels() {
//     return labels;
//   }
// 
//   public void setLabels(List<String> labels) {
//     this.labels = labels;
//   }
// 
//   @Override
//   public boolean equals(Object o) {
//     if (this == o) {
//       return true;
//     }
//     if (!(o instanceof Item)) {
//       return false;
//     }
//     Item item = (Item) o;
//     return id.equals(item.id)
//         && name.equals(item.name)
//         && type.equals(item.type)
//         && price.equals(item.price);
//   }
// 
//   @Override
//   public int hashCode() {
//     return Objects.hash(id, name, type, price);
//   }
// 
//   @Override
//   public String toString() {
//     return new StringJoiner(", ", Item.class.getSimpleName() + "[", "]")
//         .add("id=" + id)
//         .add("name='" + name + "'")
//         .add("type='" + type + "'")
//         .add("price=" + price)
//         .add("imageUrl='" + imageUrl + "'")
//         .add("quantity=" + quantity)
//         .add("labels=" + labels)
//         .toString();
//   }
// }


import com.google.abmedge.dto.Item;
import java.util.List;
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.abmedge.inventory.dto;


/**
 * This class is a container to represent a yaml definition that holds all the items to be loaded
 * into the inventory on startup. This class is used to deserialize a string yaml configuration
 * loaded from an environment variable as described in {@link
 * com.google.abmedge.inventory.InventoryController#initInventoryItems()}. This class contains a
 * collection of {@link Item}s as expected from the yaml definition.
 */
public class Inventory {

  private List<Item> items;

  public List<Item> getItems() {
    return items;
  }

// Path: point-of-sale-app/service-sdk/src/main/java/com/google/abmedge/dto/Item.java
// public class Item {
// 
//   private UUID id;
//   private String name;
//   private String type;
//   private Number price;
//   private String imageUrl;
//   private long quantity;
//   private List<String> labels;
// 
//   public Item() {
//     this.labels = new ArrayList<>();
//   }
// 
//   public static Item from(Item item) {
//     Item copyItem = new Item();
//     copyItem.id = item.id;
//     copyItem.type = item.type;
//     copyItem.name = item.name;
//     copyItem.price = item.price;
//     copyItem.imageUrl = item.imageUrl;
//     copyItem.quantity = item.quantity;
//     copyItem.getLabels().addAll(item.getLabels());
//     return copyItem;
//   }
// 
//   public UUID getId() {
//     return id;
//   }
// 
//   public void setId(UUID id) {
//     this.id = id;
//   }
// 
//   public String getName() {
//     return name;
//   }
// 
//   public void setName(String name) {
//     this.name = name;
//   }
// 
//   public String getType() {
//     return type;
//   }
// 
//   public void setType(String type) {
//     this.type = type;
//   }
// 
//   public long getQuantity() {
//     return quantity;
//   }
// 
//   public void setQuantity(long quantity) {
//     this.quantity = quantity;
//   }
// 
//   public Number getPrice() {
//     return price;
//   }
// 
//   public void setPrice(Number price) {
//     this.price = price;
//   }
// 
//   public String getImageUrl() {
//     return imageUrl;
//   }
// 
//   public void setImageUrl(String imageUrl) {
//     this.imageUrl = imageUrl;
//   }
// 
//   public List<String> getLabels() {
//     return labels;
//   }
// 
//   public void setLabels(List<String> labels) {
//     this.labels = labels;
//   }
// 
//   @Override
//   public boolean equals(Object o) {
//     if (this == o) {
//       return true;
//     }
//     if (!(o instanceof Item)) {
//       return false;
//     }
//     Item item = (Item) o;
//     return id.equals(item.id)
//         && name.equals(item.name)
//         && type.equals(item.type)
//         && price.equals(item.price);
//   }
// 
//   @Override
//   public int hashCode() {
//     return Objects.hash(id, name, type, price);
//   }
// 
//   @Override
//   public String toString() {
//     return new StringJoiner(", ", Item.class.getSimpleName() + "[", "]")
//         .add("id=" + id)
//         .add("name='" + name + "'")
//         .add("type='" + type + "'")
//         .add("price=" + price)
//         .add("imageUrl='" + imageUrl + "'")
//         .add("quantity=" + quantity)
//         .add("labels=" + labels)
//         .toString();
//   }
// }


// Path: point-of-sale-app/inventory/src/main/java/com/google/abmedge/inventory/dto/Inventory.java
import com.google.abmedge.dto.Item;
import java.util.List;

// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.abmedge.inventory.dto;


/**
 * This class is a container to represent a yaml definition that holds all the items to be loaded
 * into the inventory on startup. This class is used to deserialize a string yaml configuration
 * loaded from an environment variable as described in {@link
 * com.google.abmedge.inventory.InventoryController#initInventoryItems()}. This class contains a
 * collection of {@link Item}s as expected from the yaml definition.
 */
public class Inventory {

  private List<Item> items;

  public List<Item> getItems() {
    return items;
  }

  public void setItems(List<Item> items) {