Commit 30bafe54 authored by earndt's avatar earndt

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

parent 9c0f909c
...@@ -25,6 +25,12 @@ ...@@ -25,6 +25,12 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId> <artifactId>spring-boot-starter-webflux</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <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; package com.afp.ordermanagement.model;
import lombok.Data;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
import java.util.Objects;
@Data
@Document(collection = "orders") @Document(collection = "orders")
public class Order { public class Order {
@Id @Id
private String id; private String id;
private String userId;
private String emailAddress; private String emailAddress;
private String trackingCode;
public String getId() { private enum Status {
return id; UNFULFILLED,
} FULFILLED,
CANCELLED
};
private double createdAt;
private double updatedAt;
private List<Item> items;
private Address address;
public void setId(String id) { @Override
this.id = id; 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() { @Override
return emailAddress; public int hashCode() {
return Objects.hash(getId(), getUserId(), getEmailAddress(), getTrackingCode(), getCreatedAt(), getUpdatedAt(), getItems(), getAddress());
} }
public void setEmailAddress(String emailAddress) { @Override
this.emailAddress = emailAddress; 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