From 00bf1cdf1a424281d6d154cb52fca2de76a77e24 Mon Sep 17 00:00:00 2001 From: Sebastian Bugge <vkbugge@hotmail.com> Date: Wed, 19 Apr 2023 14:01:49 +0200 Subject: [PATCH 1/7] chore: add lombok dependency --- api/pom.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/api/pom.xml b/api/pom.xml index 795b0e4..6c384ca 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -58,7 +58,11 @@ <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> - </dependencies> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </dependency> + </dependencies> <build> <plugins> -- GitLab From 7259841a24503681fa586156a136602fa86b73b1 Mon Sep 17 00:00:00 2001 From: Sebastian Bugge <vkbugge@hotmail.com> Date: Wed, 19 Apr 2023 14:02:03 +0200 Subject: [PATCH 2/7] feat: add user database model --- .../main/java/no/freshify/api/model/User.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 api/src/main/java/no/freshify/api/model/User.java diff --git a/api/src/main/java/no/freshify/api/model/User.java b/api/src/main/java/no/freshify/api/model/User.java new file mode 100644 index 0000000..0d7ea60 --- /dev/null +++ b/api/src/main/java/no/freshify/api/model/User.java @@ -0,0 +1,23 @@ +package no.freshify.api.model; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +@Entity +@Getter +@Setter +public class User { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false) + private String firstName; + + @Column(nullable = false, unique = true) + private String email; + + @Column(nullable = false) + private String password; +} -- GitLab From 9a336198c50cac7c5ef48416e60912bb397611a6 Mon Sep 17 00:00:00 2001 From: Sebastian Bugge <vkbugge@hotmail.com> Date: Wed, 19 Apr 2023 14:04:08 +0200 Subject: [PATCH 3/7] feat: add Household database model --- .../java/no/freshify/api/model/Household.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 api/src/main/java/no/freshify/api/model/Household.java diff --git a/api/src/main/java/no/freshify/api/model/Household.java b/api/src/main/java/no/freshify/api/model/Household.java new file mode 100644 index 0000000..0cdb6cd --- /dev/null +++ b/api/src/main/java/no/freshify/api/model/Household.java @@ -0,0 +1,17 @@ +package no.freshify.api.model; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +@Entity +@Getter +@Setter +public class Household { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column + private String name; +} -- GitLab From 44f516a67f74a6776d843c55bfc9bf19e57cc3f4 Mon Sep 17 00:00:00 2001 From: Sebastian Bugge <vkbugge@hotmail.com> Date: Wed, 19 Apr 2023 14:07:55 +0200 Subject: [PATCH 4/7] feat: add item type database model --- .../java/no/freshify/api/model/ItemType.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 api/src/main/java/no/freshify/api/model/ItemType.java diff --git a/api/src/main/java/no/freshify/api/model/ItemType.java b/api/src/main/java/no/freshify/api/model/ItemType.java new file mode 100644 index 0000000..b11b342 --- /dev/null +++ b/api/src/main/java/no/freshify/api/model/ItemType.java @@ -0,0 +1,17 @@ +package no.freshify.api.model; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +@Entity +@Getter +@Setter +public class ItemType { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column + private String name; +} -- GitLab From e3bda39832846c3db7031898e539f7b8825d4fc9 Mon Sep 17 00:00:00 2001 From: Sebastian Bugge <vkbugge@hotmail.com> Date: Wed, 19 Apr 2023 14:12:43 +0200 Subject: [PATCH 5/7] feat: add shopping list entry database model --- .../freshify/api/model/ShoppingListEntry.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 api/src/main/java/no/freshify/api/model/ShoppingListEntry.java diff --git a/api/src/main/java/no/freshify/api/model/ShoppingListEntry.java b/api/src/main/java/no/freshify/api/model/ShoppingListEntry.java new file mode 100644 index 0000000..55fbb1a --- /dev/null +++ b/api/src/main/java/no/freshify/api/model/ShoppingListEntry.java @@ -0,0 +1,29 @@ +package no.freshify.api.model; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +@Entity +@Getter +@Setter +public class ShoppingListEntry { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false) + private Long count; + + @Column(nullable = false) + private Boolean suggested = false; + + @Column(nullable = false) + private Boolean checked = false; + + @ManyToOne + private ItemType type; + + @ManyToOne + private User addedBy; +} -- GitLab From 9f6297569c99ec98866657be23e3b0f99b2d0b4c Mon Sep 17 00:00:00 2001 From: Sebastian Bugge <vkbugge@hotmail.com> Date: Wed, 19 Apr 2023 14:18:07 +0200 Subject: [PATCH 6/7] feat: add item database model --- .../main/java/no/freshify/api/model/Item.java | 31 +++++++++++++++++++ .../no/freshify/api/model/ItemStatus.java | 6 ++++ 2 files changed, 37 insertions(+) create mode 100644 api/src/main/java/no/freshify/api/model/Item.java create mode 100644 api/src/main/java/no/freshify/api/model/ItemStatus.java diff --git a/api/src/main/java/no/freshify/api/model/Item.java b/api/src/main/java/no/freshify/api/model/Item.java new file mode 100644 index 0000000..2174034 --- /dev/null +++ b/api/src/main/java/no/freshify/api/model/Item.java @@ -0,0 +1,31 @@ +package no.freshify.api.model; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Entity +@Getter +@Setter +public class Item { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false) + private Date lastChanged; + + @Column(nullable = false) + private Double remaining = 1.0; + + @Column(nullable = false) + private Boolean suggested = false; + + @Enumerated(EnumType.STRING) + private ItemStatus status; + + @ManyToOne + private User addedBy; +} diff --git a/api/src/main/java/no/freshify/api/model/ItemStatus.java b/api/src/main/java/no/freshify/api/model/ItemStatus.java new file mode 100644 index 0000000..4c4f8b7 --- /dev/null +++ b/api/src/main/java/no/freshify/api/model/ItemStatus.java @@ -0,0 +1,6 @@ +package no.freshify.api.model; + +public enum ItemStatus { + INVENTORY, + USED, +} -- GitLab From 7e033fdcadce32365835a1c65f2543438fb99d57 Mon Sep 17 00:00:00 2001 From: Sebastian Bugge <vkbugge@hotmail.com> Date: Wed, 19 Apr 2023 14:26:46 +0200 Subject: [PATCH 7/7] feat: add household member database model --- .../freshify/api/model/HouseholdMember.java | 26 +++++++++++++++++++ .../api/model/HouseholdMemberKey.java | 20 ++++++++++++++ .../api/model/HouseholdMemberRole.java | 6 +++++ 3 files changed, 52 insertions(+) create mode 100644 api/src/main/java/no/freshify/api/model/HouseholdMember.java create mode 100644 api/src/main/java/no/freshify/api/model/HouseholdMemberKey.java create mode 100644 api/src/main/java/no/freshify/api/model/HouseholdMemberRole.java diff --git a/api/src/main/java/no/freshify/api/model/HouseholdMember.java b/api/src/main/java/no/freshify/api/model/HouseholdMember.java new file mode 100644 index 0000000..ff50978 --- /dev/null +++ b/api/src/main/java/no/freshify/api/model/HouseholdMember.java @@ -0,0 +1,26 @@ +package no.freshify.api.model; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +@Entity +@Getter +@Setter +public class HouseholdMember { + @EmbeddedId + private HouseholdMemberKey id; + + @ManyToOne + @MapsId("householdId") + @JoinColumn(name = "household_id") + private Household household; + + @ManyToOne + @MapsId("userId") + @JoinColumn(name = "user_id") + private User user; + + @Enumerated(EnumType.STRING) + private HouseholdMemberRole role; +} diff --git a/api/src/main/java/no/freshify/api/model/HouseholdMemberKey.java b/api/src/main/java/no/freshify/api/model/HouseholdMemberKey.java new file mode 100644 index 0000000..19ea801 --- /dev/null +++ b/api/src/main/java/no/freshify/api/model/HouseholdMemberKey.java @@ -0,0 +1,20 @@ +package no.freshify.api.model; + +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; +import jakarta.persistence.GeneratedValue; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +@Embeddable +@Getter +@Setter +public class HouseholdMemberKey implements Serializable { + @Column(name = "household_id") + private Long householdId; + + @Column(name = "user_id") + private Long userId; +} diff --git a/api/src/main/java/no/freshify/api/model/HouseholdMemberRole.java b/api/src/main/java/no/freshify/api/model/HouseholdMemberRole.java new file mode 100644 index 0000000..fe88acf --- /dev/null +++ b/api/src/main/java/no/freshify/api/model/HouseholdMemberRole.java @@ -0,0 +1,6 @@ +package no.freshify.api.model; + +public enum HouseholdMemberRole { + USER, + SUPERUSER, +} -- GitLab