aboutsummaryrefslogtreecommitdiff
path: root/ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java
diff options
context:
space:
mode:
Diffstat (limited to 'ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java')
-rw-r--r--ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java68
1 files changed, 68 insertions, 0 deletions
diff --git a/ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java b/ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java
new file mode 100644
index 0000000..0a61714
--- /dev/null
+++ b/ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java
@@ -0,0 +1,68 @@
+package com.ufund.api.ufundapi.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class User {
+
+ @JsonProperty("name")
+ private final String name;
+ @JsonProperty("passwordHash")
+ private int passwordHash;
+ @JsonProperty("basket")
+ private final List<Need> basket;
+
+ /**
+ * Create a new user
+ *
+ * @param name The name of the user
+ */
+ public User(@JsonProperty("name") String name) {
+ this.name = name;
+ basket = new ArrayList<>();
+ }
+
+ /**
+ * Create a new user
+ *
+ * @param name The name of the user
+ * @param basket A basket to copy from
+ */
+ public User(@JsonProperty("name") String name, @JsonProperty("basket") List<Need> basket) {
+ this.name = name;
+ this.basket = basket;
+ }
+
+ /**
+ * Create a deep copy of another user
+ *
+ * @param other The user to copy from
+ */
+ public User(User other) {
+ this.name = other.name;
+ this.basket = other.basket;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public boolean verifyPassword(String password) {
+ return password.hashCode() == passwordHash;
+ }
+
+ public void addToBasket(Need need) {
+ basket.add(need);
+ }
+
+ public Need[] getBasketNeeds() {
+ return basket.toArray(Need[]::new);
+ }
+
+ public void removeBasketNeed(Need need) {
+ basket.remove(need);
+ }
+
+}