Commit 30bafe54 authored by earndt's avatar earndt

[AFP-75] 🍱 Adds Order model, submodels [@earndt]

parent 9c0f909c
......@@ -25,6 +25,12 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
......
package com.afp.ordermanagement.model;
import lombok.Data;
import java.util.Objects;
@Data
public class Address {
private String street;
private String city;
private String state;
private String zip;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Address)) return false;
Address address = (Address) o;
return getStreet().equals(address.getStreet()) && getCity().equals(address.getCity()) && getState().equals(address.getState()) && getZip().equals(address.getZip());
}
@Override
public int hashCode() {
return Objects.hash(getStreet(), getCity(), getState(), getZip());
}
@Override
public String toString() {
return "Address{" +
"street='" + street + '\'' +
", city='" + city + '\'' +
", state='" + state + '\'' +
", zip='" + zip + '\'' +
'}';
}
}
package com.afp.ordermanagement.model;
import lombok.Data;
import java.util.Objects;
@Data
public class Item {
private String id;
private int stock;
private double price;
private int sku;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Item)) return false;
Item item = (Item) o;
return getStock() == item.getStock() && Double.compare(item.getPrice(), getPrice()) == 0 && getSku() == item.getSku() && getId().equals(item.getId());
}
@Override
public int hashCode() {
return Objects.hash(getId(), getStock(), getPrice(), getSku());
}
@Override
public String toString() {
return "Item{" +
"id='" + id + '\'' +
", stock=" + stock +
", price=" + price +
", sku=" + sku +
'}';
}
}
package com.afp.ordermanagement.model;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
import java.util.Objects;
@Data
@Document(collection = "orders")
public class Order {
@Id
private String id;
private String userId;
private String emailAddress;
private String trackingCode;
public String getId() {
return id;
}
private enum Status {
UNFULFILLED,
FULFILLED,
CANCELLED
};
private double createdAt;
private double updatedAt;
private List<Item> items;
private Address address;
public void setId(String id) {
this.id = id;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Order)) return false;
Order order = (Order) o;
return Double.compare(order.getCreatedAt(), getCreatedAt()) == 0 && Double.compare(order.getUpdatedAt(), getUpdatedAt()) == 0 && getId().equals(order.getId()) && getUserId().equals(order.getUserId()) && getEmailAddress().equals(order.getEmailAddress()) && Objects.equals(getTrackingCode(), order.getTrackingCode()) && getItems().equals(order.getItems()) && getAddress().equals(order.getAddress());
}
public String getEmailAddress() {
return emailAddress;
@Override
public int hashCode() {
return Objects.hash(getId(), getUserId(), getEmailAddress(), getTrackingCode(), getCreatedAt(), getUpdatedAt(), getItems(), getAddress());
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
@Override
public String toString() {
return "Order{" +
"id='" + id + '\'' +
", userId='" + userId + '\'' +
", emailAddress='" + emailAddress + '\'' +
", trackingCode='" + trackingCode + '\'' +
", createdAt=" + createdAt +
", updatedAt=" + updatedAt +
", items=" + items +
", address=" + address +
'}';
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment