diff --git a/api/.idea/.gitignore b/api/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4
--- /dev/null
+++ b/api/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/api/.idea/compiler.xml b/api/.idea/compiler.xml
new file mode 100644
index 0000000000000000000000000000000000000000..89a4163c3d4a79efb15cabca202371c0d3f7cbcf
--- /dev/null
+++ b/api/.idea/compiler.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile default="true" name="Default" enabled="true" />
+      <profile name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+      </profile>
+      <profile name="Annotation profile for Freshify API" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <processorPath useClasspath="false">
+          <entry name="$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/projectlombok/lombok-mapstruct-binding/0.2.0/lombok-mapstruct-binding-0.2.0.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/mapstruct/mapstruct-processor/1.4.2.Final/mapstruct-processor-1.4.2.Final.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/mapstruct/mapstruct/1.4.2.Final/mapstruct-1.4.2.Final.jar" />
+        </processorPath>
+        <module name="api" />
+      </profile>
+    </annotationProcessing>
+  </component>
+  <component name="JavacSettings">
+    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
+      <module name="api" options="-parameters" />
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/api/.idea/encodings.xml b/api/.idea/encodings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..63e900193296f8ed911a1b9f5b051cf908099431
--- /dev/null
+++ b/api/.idea/encodings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding">
+    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/api/.idea/jarRepositories.xml b/api/.idea/jarRepositories.xml
new file mode 100644
index 0000000000000000000000000000000000000000..712ab9d985c20018a0c97b93d2148ac1ffe588a5
--- /dev/null
+++ b/api/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RemoteRepositoriesConfiguration">
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+    </remote-repository>
+  </component>
+</project>
\ No newline at end of file
diff --git a/api/.idea/jpa-buddy.xml b/api/.idea/jpa-buddy.xml
new file mode 100644
index 0000000000000000000000000000000000000000..898e07a6753d20b618d16050a3b2681b3b2beff0
--- /dev/null
+++ b/api/.idea/jpa-buddy.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="JpaBuddyIdeaProjectConfig">
+    <option name="defaultUnitInitialized" value="true" />
+    <option name="renamerInitialized" value="true" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/api/.idea/misc.xml b/api/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..82ab2ccf16eb636082324c75e9155dca4709899b
--- /dev/null
+++ b/api/.idea/misc.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK" />
+  <component name="ProjectType">
+    <option name="id" value="jpab" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/api/.idea/uiDesigner.xml b/api/.idea/uiDesigner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2b63946d5b31084bbb7dda418ceb3d75eb686373
--- /dev/null
+++ b/api/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+</project>
\ No newline at end of file
diff --git a/api/.idea/vcs.xml b/api/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6c0b8635858dc7ad44b93df54b762707ce49eefc
--- /dev/null
+++ b/api/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/api/api.iml b/api/api.iml
new file mode 100644
index 0000000000000000000000000000000000000000..aa3916f2bf802761e73f4439f126a358a2a12115
--- /dev/null
+++ b/api/api.iml
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="web" name="Web">
+      <configuration>
+        <webroots />
+        <sourceRoots>
+          <root url="file://$MODULE_DIR$/src/main/java" />
+          <root url="file://$MODULE_DIR$/src/main/resources" />
+        </sourceRoots>
+      </configuration>
+    </facet>
+    <facet type="jpa" name="JPA">
+      <configuration>
+        <setting name="validation-enabled" value="true" />
+        <setting name="provider-name" value="Hibernate" />
+        <datasource-mapping />
+        <naming-strategy-map />
+      </configuration>
+    </facet>
+    <facet type="Spring" name="Spring">
+      <configuration />
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_17">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:3.0.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:3.0.5" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.19" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:3.0.5" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:5.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:6.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate.orm:hibernate-core:6.1.7.Final" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.persistence:jakarta.persistence-api:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.transaction:jakarta.transaction-api:2.0.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.jboss.logging:jboss-logging:3.5.0.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.hibernate.common:hibernate-commons-annotations:6.0.6.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.jboss:jandex:2.4.2.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: net.bytebuddy:byte-buddy:1.12.23" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.glassfish.jaxb:jaxb-runtime:4.0.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.glassfish.jaxb:jaxb-core:4.0.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.eclipse.angus:angus-activation:2.0.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.glassfish.jaxb:txw2:4.0.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.istack:istack-commons-runtime:4.1.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: jakarta.inject:jakarta.inject-api:2.0.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.antlr:antlr4-runtime:4.10.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:3.0.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:3.0.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-orm:6.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:6.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:6.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:6.0.7" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:6.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-oauth2-client:3.0.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:3.0.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:3.0.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:3.0.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:3.0.5" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.4.6" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.4.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.19.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.19.0" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:2.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.33" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-config:6.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:6.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:6.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:6.0.7" level="project" />
+    <orderEntry type="library" name="Maven: io.micrometer:micrometer-observation:1.10.5" level="project" />
+    <orderEntry type="library" name="Maven: io.micrometer:micrometer-commons:1.10.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-oauth2-client:6.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-oauth2-core:6.0.2" level="project" />
+    <orderEntry type="library" name="Maven: com.nimbusds:oauth2-oidc-sdk:9.43.1" level="project" />
+    <orderEntry type="library" name="Maven: com.github.stephenc.jcip:jcip-annotations:1.0-1" level="project" />
+    <orderEntry type="library" name="Maven: com.nimbusds:content-type:2.2" level="project" />
+    <orderEntry type="library" name="Maven: com.nimbusds:lang-tag:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-oauth2-jose:6.0.2" level="project" />
+    <orderEntry type="library" name="Maven: com.nimbusds:nimbus-jose-jwt:9.24.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-oauth2-resource-server:3.0.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-oauth2-resource-server:6.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-security:3.0.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:6.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-web:6.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:3.0.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:3.0.5" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.14.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.14.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.14.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.14.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.14.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:3.0.5" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:10.1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:10.1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:10.1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:6.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:6.0.7" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.h2database:h2:2.1.214" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.mysql:mysql-connector-j:8.0.32" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:3.0.5" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:3.0.5" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:3.0.5" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: net.minidev:json-smart:2.4.10" level="project" />
+    <orderEntry type="library" name="Maven: net.minidev:accessors-smart:2.4.9" level="project" />
+    <orderEntry type="library" name="Maven: org.ow2.asm:asm:9.3" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:4.0.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: jakarta.activation:jakarta.activation-api:2.1.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.23.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.9.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.9.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.9.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.9.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.9.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.9.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:4.8.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.12.23" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:4.8.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:6.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:6.0.7" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:6.0.7" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.9.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.security:spring-security-test:6.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.26" level="project" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/api/database/localdb.mv.db b/api/database/localdb.mv.db
new file mode 100644
index 0000000000000000000000000000000000000000..72d9f048bac533ab2f04d7b0ed090c910dc68ec0
Binary files /dev/null and b/api/database/localdb.mv.db differ
diff --git a/api/database/localdb.trace.db b/api/database/localdb.trace.db
new file mode 100644
index 0000000000000000000000000000000000000000..2dc86ca284f6ecb0e4222f4d748eec3c4242c24f
--- /dev/null
+++ b/api/database/localdb.trace.db
@@ -0,0 +1,163 @@
+2023-04-20 13:36:10 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (1, 1, 'OWNER') [42102-214]
+2023-04-20 13:36:10 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (1, 2, 'MEMBER') [42102-214]
+2023-04-20 13:36:10 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (2, 3, 'OWNER') [42102-214]
+2023-04-20 13:36:10 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (2, 4, 'MEMBER') [42102-214]
+2023-04-20 13:36:10 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (3, 5, 'OWNER') [42102-214]
+2023-04-20 13:36:10 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (3, 6, 'MEMBER') [42102-214]
+2023-04-20 13:36:10 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (4, 7, 'OWNER') [42102-214]
+2023-04-20 13:36:10 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (4, 8, 'MEMBER') [42102-214]
+2023-04-20 13:36:10 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (5, 9, 'OWNER') [42102-214]
+2023-04-20 13:36:10 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (5, 10, 'MEMBER') [42102-214]
+2023-04-20 13:37:12 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "[*]HOUSEHOLD_MEMBER ITEM HOUSEHOLD_MEMBER HOUSEHOLD"; expected "HELP"; SQL statement:
+HOUSEHOLD_MEMBER ITEM HOUSEHOLD_MEMBER HOUSEHOLD [42001-214]
+2023-04-20 13:46:14 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (1, 1, 'SUPERUSER') [42102-214]
+2023-04-20 13:46:14 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (1, 2, 'USER') [42102-214]
+2023-04-20 13:46:14 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (2, 3, 'SUPERUSER') [42102-214]
+2023-04-20 13:46:14 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (2, 4, 'USER') [42102-214]
+2023-04-20 13:46:14 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (3, 5, 'SUPERUSER') [42102-214]
+2023-04-20 13:46:14 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (3, 6, 'USER') [42102-214]
+2023-04-20 13:46:14 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (4, 7, 'SUPERUSER') [42102-214]
+2023-04-20 13:46:14 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (4, 8, 'USER') [42102-214]
+2023-04-20 13:46:14 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (5, 9, 'SUPERUSER') [42102-214]
+2023-04-20 13:46:14 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "HOUSEHOLDMEMBER" not found; SQL statement:
+INSERT INTO HouseholdMember (household_id, user_id, role) VALUES (5, 10, 'USER') [42102-214]
+2023-04-21 14:24:07 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "type test" not found; SQL statement:
+INSERT INTO ITEM_TYPE VALUES(1, "type test") [42122-214]
+	at org.h2.message.DbException.getJdbcSQLException(DbException.java:502)
+	at org.h2.message.DbException.getJdbcSQLException(DbException.java:477)
+	at org.h2.message.DbException.get(DbException.java:223)
+	at org.h2.message.DbException.get(DbException.java:199)
+	at org.h2.expression.ExpressionColumn.getColumnException(ExpressionColumn.java:244)
+	at org.h2.expression.ExpressionColumn.optimizeOther(ExpressionColumn.java:226)
+	at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:213)
+	at org.h2.command.dml.Insert.doPrepare(Insert.java:300)
+	at org.h2.command.dml.DataChangeStatement.prepare(DataChangeStatement.java:37)
+	at org.h2.command.Parser.prepareCommand(Parser.java:575)
+	at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:631)
+	at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:554)
+	at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1116)
+	at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:237)
+	at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223)
+	at org.h2.server.web.WebApp.getResult(WebApp.java:1339)
+	at org.h2.server.web.WebApp.query(WebApp.java:1137)
+	at org.h2.server.web.WebApp.query(WebApp.java:1113)
+	at org.h2.server.web.WebApp.process(WebApp.java:244)
+	at org.h2.server.web.WebApp.processRequest(WebApp.java:176)
+	at org.h2.server.web.JakartaWebServlet.doGet(JakartaWebServlet.java:129)
+	at org.h2.server.web.JakartaWebServlet.doPost(JakartaWebServlet.java:166)
+	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:563)
+	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:631)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+	at no.freshify.api.security.JwtTokenFilter.doFilterInternal(JwtTokenFilter.java:66)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:219)
+	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
+	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)
+	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
+	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
+	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.base/java.lang.Thread.run(Thread.java:833)
+2023-04-21 14:25:36 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEMTYPE" not found; SQL statement:
+INSERT INTO ItemType (name) VALUES ('Shirt') [42102-214]
+2023-04-21 14:25:36 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEMTYPE" not found; SQL statement:
+INSERT INTO ItemType (name) VALUES ('Pants') [42102-214]
+2023-04-21 14:25:36 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEMTYPE" not found; SQL statement:
+INSERT INTO ItemType (name) VALUES ('Dress') [42102-214]
+2023-04-21 14:25:36 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEMTYPE" not found; SQL statement:
+INSERT INTO ItemType (name) VALUES ('Jacket') [42102-214]
+2023-04-21 14:25:36 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEMTYPE" not found; SQL statement:
+INSERT INTO ItemType (name) VALUES ('Hat') [42102-214]
+2023-04-21 14:25:36 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEMTYPE" not found; SQL statement:
+INSERT INTO ItemType (name) VALUES ('Shoes') [42102-214]
+2023-04-21 14:25:36 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEMTYPE" not found; SQL statement:
+INSERT INTO ItemType (name) VALUES ('Socks') [42102-214]
+2023-04-21 14:25:36 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEMTYPE" not found; SQL statement:
+INSERT INTO ItemType (name) VALUES ('Sweater') [42102-214]
+2023-04-21 14:25:36 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEMTYPE" not found; SQL statement:
+INSERT INTO ItemType (name) VALUES ('Shorts') [42102-214]
+2023-04-21 14:25:36 jdbc[13]: exception
+org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEMTYPE" not found; SQL statement:
+INSERT INTO ItemType (name) VALUES ('Skirt') [42102-214]
diff --git a/api/src/main/java/no/freshify/api/model/dto/HouseholdDTO.java b/api/src/main/java/no/freshify/api/model/dto/HouseholdDTO.java
index 7b1ba356288cdd2d2ca416ebd2bc973e54309cfc..9d7cf05c8908a0a34cc6b7ce55875315812ec368 100644
--- a/api/src/main/java/no/freshify/api/model/dto/HouseholdDTO.java
+++ b/api/src/main/java/no/freshify/api/model/dto/HouseholdDTO.java
@@ -6,5 +6,6 @@ import lombok.Setter;
 @Getter
 @Setter
 public class HouseholdDTO {
+    private Long id;
     private String name;
 }
diff --git a/api/target/classes/application-dev.properties b/api/target/classes/application-dev.properties
new file mode 100644
index 0000000000000000000000000000000000000000..7fa9ec49a7cfdbff49d5e7e40e496ec194b7ccaa
--- /dev/null
+++ b/api/target/classes/application-dev.properties
@@ -0,0 +1,12 @@
+spring.h2.console.enabled=true
+spring.h2.console.path=/h2-ui
+
+spring.datasource.url=jdbc:mysql://127.0.0.1:56000/freshify_dev
+spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
+spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
+spring.jpa.hibernate.ddl-auto=update
+spring.datasource.username=root
+spring.datasource.password=freshify
+spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
+
+jwt.secret=abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz
\ No newline at end of file
diff --git a/api/target/classes/application.properties b/api/target/classes/application.properties
new file mode 100644
index 0000000000000000000000000000000000000000..cbb42d2ac32b3ecbfa477336eab170fb97868c0b
--- /dev/null
+++ b/api/target/classes/application.properties
@@ -0,0 +1 @@
+spring.profiles.active=dev
diff --git a/api/target/classes/insert_item_types.sql b/api/target/classes/insert_item_types.sql
new file mode 100644
index 0000000000000000000000000000000000000000..3b5baf11f944748d3e4d6c52110762bf8afc8c14
--- /dev/null
+++ b/api/target/classes/insert_item_types.sql
@@ -0,0 +1,998 @@
+USE freshify_dev;
+START TRANSACTION;
+INSERT INTO item_type (name) VALUES ('Ã…bor');
+INSERT INTO item_type (name) VALUES ('Adzukibønner');
+INSERT INTO item_type (name) VALUES ('Agurk');
+INSERT INTO item_type (name) VALUES ('Agurker');
+INSERT INTO item_type (name) VALUES ('Agurksalat');
+INSERT INTO item_type (name) VALUES ('Aioli');
+INSERT INTO item_type (name) VALUES ('Ajvar');
+INSERT INTO item_type (name) VALUES ('Akkar');
+INSERT INTO item_type (name) VALUES ('Ã…l');
+INSERT INTO item_type (name) VALUES ('Alaska pollock');
+INSERT INTO item_type (name) VALUES ('Alfalfaspirer');
+INSERT INTO item_type (name) VALUES ('Alkoholholdige drikkevarer');
+INSERT INTO item_type (name) VALUES ('Amaranth');
+INSERT INTO item_type (name) VALUES ('Ananas');
+INSERT INTO item_type (name) VALUES ('Ananasjuice');
+INSERT INTO item_type (name) VALUES ('And');
+INSERT INTO item_type (name) VALUES ('Andre kaker o.l.');
+INSERT INTO item_type (name) VALUES ('Anisfrø');
+INSERT INTO item_type (name) VALUES ('Ansjos');
+INSERT INTO item_type (name) VALUES ('Appelsin');
+INSERT INTO item_type (name) VALUES ('Appelsinjuice');
+INSERT INTO item_type (name) VALUES ('Appelsinmarmelade');
+INSERT INTO item_type (name) VALUES ('Appelsinsaft');
+INSERT INTO item_type (name) VALUES ('Appelsinskall');
+INSERT INTO item_type (name) VALUES ('Aprikos');
+INSERT INTO item_type (name) VALUES ('Aprikossyltetøy');
+INSERT INTO item_type (name) VALUES ('Aronia');
+INSERT INTO item_type (name) VALUES ('Artiskokk');
+INSERT INTO item_type (name) VALUES ('Asparges');
+INSERT INTO item_type (name) VALUES ('Aspargesbønner');
+INSERT INTO item_type (name) VALUES ('Aspargessuppe');
+INSERT INTO item_type (name) VALUES ('Aubergine');
+INSERT INTO item_type (name) VALUES ('Avokado');
+INSERT INTO item_type (name) VALUES ('Avokado- og kikertpålegg');
+INSERT INTO item_type (name) VALUES ('Babygulrot');
+INSERT INTO item_type (name) VALUES ('Babymais');
+INSERT INTO item_type (name) VALUES ('Babyspinat');
+INSERT INTO item_type (name) VALUES ('Baconcrisp');
+INSERT INTO item_type (name) VALUES ('Baconost');
+INSERT INTO item_type (name) VALUES ('Baconpostei ');
+INSERT INTO item_type (name) VALUES ('Bagels');
+INSERT INTO item_type (name) VALUES ('Baguett');
+INSERT INTO item_type (name) VALUES ('Baguette');
+INSERT INTO item_type (name) VALUES ('Bakepulver');
+INSERT INTO item_type (name) VALUES ('Balsamicoeddik');
+INSERT INTO item_type (name) VALUES ('Bambusskudd');
+INSERT INTO item_type (name) VALUES ('Banan');
+INSERT INTO item_type (name) VALUES ('Bananchips');
+INSERT INTO item_type (name) VALUES ('Banankake');
+INSERT INTO item_type (name) VALUES ('Bankekjøtt');
+INSERT INTO item_type (name) VALUES ('Barnemat');
+INSERT INTO item_type (name) VALUES ('Basilikum');
+INSERT INTO item_type (name) VALUES ('Bayonneskinke');
+INSERT INTO item_type (name) VALUES ('Belgfrukter');
+INSERT INTO item_type (name) VALUES ('Berlinerbolle');
+INSERT INTO item_type (name) VALUES ('Berlinerkrans');
+INSERT INTO item_type (name) VALUES ('Bernaisesaus');
+INSERT INTO item_type (name) VALUES ('Betasuppe');
+INSERT INTO item_type (name) VALUES ('Bidos');
+INSERT INTO item_type (name) VALUES ('Biff stroganoff');
+INSERT INTO item_type (name) VALUES ('Biscotti');
+INSERT INTO item_type (name) VALUES ('Bjørnebær');
+INSERT INTO item_type (name) VALUES ('Bjørnebærsyltetøy');
+INSERT INTO item_type (name) VALUES ('Blåbær');
+INSERT INTO item_type (name) VALUES ('Blåbærsyltetøy');
+INSERT INTO item_type (name) VALUES ('Bladsalat');
+INSERT INTO item_type (name) VALUES ('Blåkveite');
+INSERT INTO item_type (name) VALUES ('Blålange');
+INSERT INTO item_type (name) VALUES ('Blåskjell');
+INSERT INTO item_type (name) VALUES ('Blod');
+INSERT INTO item_type (name) VALUES ('Blodpudding');
+INSERT INTO item_type (name) VALUES ('Blokkebær');
+INSERT INTO item_type (name) VALUES ('Blomkål');
+INSERT INTO item_type (name) VALUES ('Blomkål/brokkolisuppe');
+INSERT INTO item_type (name) VALUES ('Blomkålsuppe');
+INSERT INTO item_type (name) VALUES ('Bløtkake');
+INSERT INTO item_type (name) VALUES ('Bogskinke');
+INSERT INTO item_type (name) VALUES ('Bokhvete');
+INSERT INTO item_type (name) VALUES ('Bokhvetemel');
+INSERT INTO item_type (name) VALUES ('Bolle');
+INSERT INTO item_type (name) VALUES ('Bondebønner');
+INSERT INTO item_type (name) VALUES ('Bønnegryte');
+INSERT INTO item_type (name) VALUES ('Bønnekarbonader');
+INSERT INTO item_type (name) VALUES ('Bønne- og olivensalat');
+INSERT INTO item_type (name) VALUES ('Bønner');
+INSERT INTO item_type (name) VALUES ('Bønnespirer');
+INSERT INTO item_type (name) VALUES ('Borlottibønner');
+INSERT INTO item_type (name) VALUES ('Bouillabaisse');
+INSERT INTO item_type (name) VALUES ('Breiflabb');
+INSERT INTO item_type (name) VALUES ('Brelett');
+INSERT INTO item_type (name) VALUES ('Bremykt');
+INSERT INTO item_type (name) VALUES ('Brennesle');
+INSERT INTO item_type (name) VALUES ('Brennevin');
+INSERT INTO item_type (name) VALUES ('Brie');
+INSERT INTO item_type (name) VALUES ('Bringebær');
+INSERT INTO item_type (name) VALUES ('Bringebærsyltetøy');
+INSERT INTO item_type (name) VALUES ('Brioche');
+INSERT INTO item_type (name) VALUES ('Brisling');
+INSERT INTO item_type (name) VALUES ('Brød');
+INSERT INTO item_type (name) VALUES ('Brødvarer');
+INSERT INTO item_type (name) VALUES ('Brokkoli');
+INSERT INTO item_type (name) VALUES ('Brokkolisuppe');
+INSERT INTO item_type (name) VALUES ('Brønnkarse');
+INSERT INTO item_type (name) VALUES ('Brosme');
+INSERT INTO item_type (name) VALUES ('Brownies');
+INSERT INTO item_type (name) VALUES ('Brune bønner');
+INSERT INTO item_type (name) VALUES ('Brune pinner');
+INSERT INTO item_type (name) VALUES ('Brunost');
+INSERT INTO item_type (name) VALUES ('Brun saus');
+INSERT INTO item_type (name) VALUES ('Brus');
+INSERT INTO item_type (name) VALUES ('Bulgurgryn');
+INSERT INTO item_type (name) VALUES ('Buljongpulver');
+INSERT INTO item_type (name) VALUES ('Butterdeig');
+INSERT INTO item_type (name) VALUES ('Byggmel');
+INSERT INTO item_type (name) VALUES ('Byggryn');
+INSERT INTO item_type (name) VALUES ('Byggrynsgrøt');
+INSERT INTO item_type (name) VALUES ('Cæsardressing');
+INSERT INTO item_type (name) VALUES ('Cæsarsalat');
+INSERT INTO item_type (name) VALUES ('Café au lait');
+INSERT INTO item_type (name) VALUES ('Caffe latte');
+INSERT INTO item_type (name) VALUES ('Caffe mocca');
+INSERT INTO item_type (name) VALUES ('Camembert');
+INSERT INTO item_type (name) VALUES ('Cappucino');
+INSERT INTO item_type (name) VALUES ('Carambola');
+INSERT INTO item_type (name) VALUES ('Cashewnøtter');
+INSERT INTO item_type (name) VALUES ('Cashewnøttpålegg');
+INSERT INTO item_type (name) VALUES ('Chapatti');
+INSERT INTO item_type (name) VALUES ('Chayote');
+INSERT INTO item_type (name) VALUES ('Cheddar');
+INSERT INTO item_type (name) VALUES ('Cheddarsaus');
+INSERT INTO item_type (name) VALUES ('Cheeseburger');
+INSERT INTO item_type (name) VALUES ('Cherimoya');
+INSERT INTO item_type (name) VALUES ('Cherrytomat');
+INSERT INTO item_type (name) VALUES ('Chevre');
+INSERT INTO item_type (name) VALUES ('Chiafrø');
+INSERT INTO item_type (name) VALUES ('Chiapudding');
+INSERT INTO item_type (name) VALUES ('Chili');
+INSERT INTO item_type (name) VALUES ('Chili con carne');
+INSERT INTO item_type (name) VALUES ('Chilinøtter');
+INSERT INTO item_type (name) VALUES ('Chilipulver');
+INSERT INTO item_type (name) VALUES ('Chilisaus');
+INSERT INTO item_type (name) VALUES ('Chorizo');
+INSERT INTO item_type (name) VALUES ('Ciabatta');
+INSERT INTO item_type (name) VALUES ('Cider');
+INSERT INTO item_type (name) VALUES ('Coleslaw');
+INSERT INTO item_type (name) VALUES ('Corn flakes');
+INSERT INTO item_type (name) VALUES ('Cortado');
+INSERT INTO item_type (name) VALUES ('Cottage Cheese');
+INSERT INTO item_type (name) VALUES ('Couscous');
+INSERT INTO item_type (name) VALUES ('Crabsticksalat');
+INSERT INTO item_type (name) VALUES ('Crème Chérie');
+INSERT INTO item_type (name) VALUES ('Crème Fraîche');
+INSERT INTO item_type (name) VALUES ('Croissant');
+INSERT INTO item_type (name) VALUES ('Cupcakes');
+INSERT INTO item_type (name) VALUES ('Daddel');
+INSERT INTO item_type (name) VALUES ('Daimkake');
+INSERT INTO item_type (name) VALUES ('Delfiakake');
+INSERT INTO item_type (name) VALUES ('Dessert');
+INSERT INTO item_type (name) VALUES ('Dessert-topping på boks');
+INSERT INTO item_type (name) VALUES ('Dessertvin');
+INSERT INTO item_type (name) VALUES ('Dill');
+INSERT INTO item_type (name) VALUES ('Dipsaus');
+INSERT INTO item_type (name) VALUES ('Donuts');
+INSERT INTO item_type (name) VALUES ('Dressing');
+INSERT INTO item_type (name) VALUES ('Drikke');
+INSERT INTO item_type (name) VALUES ('Drue');
+INSERT INTO item_type (name) VALUES ('Druejuice');
+INSERT INTO item_type (name) VALUES ('Edamamebønner');
+INSERT INTO item_type (name) VALUES ('Edamer');
+INSERT INTO item_type (name) VALUES ('Eddik');
+INSERT INTO item_type (name) VALUES ('Egg');
+INSERT INTO item_type (name) VALUES ('Eggedosis');
+INSERT INTO item_type (name) VALUES ('Eggehvite');
+INSERT INTO item_type (name) VALUES ('Eggekrem');
+INSERT INTO item_type (name) VALUES ('Eggeplomme');
+INSERT INTO item_type (name) VALUES ('Eggerøre');
+INSERT INTO item_type (name) VALUES ('Eggesalat');
+INSERT INTO item_type (name) VALUES ('Elg');
+INSERT INTO item_type (name) VALUES ('Endivesalat');
+INSERT INTO item_type (name) VALUES ('Energidrikk');
+INSERT INTO item_type (name) VALUES ('Eple');
+INSERT INTO item_type (name) VALUES ('Eplecidereddik');
+INSERT INTO item_type (name) VALUES ('Eplejuice');
+INSERT INTO item_type (name) VALUES ('Eplekake');
+INSERT INTO item_type (name) VALUES ('Eplemos');
+INSERT INTO item_type (name) VALUES ('Eplenektar');
+INSERT INTO item_type (name) VALUES ('Eplepai');
+INSERT INTO item_type (name) VALUES ('Erter');
+INSERT INTO item_type (name) VALUES ('Ertestuing');
+INSERT INTO item_type (name) VALUES ('Espresso');
+INSERT INTO item_type (name) VALUES ('Estragon');
+INSERT INTO item_type (name) VALUES ('Falafel');
+INSERT INTO item_type (name) VALUES ('Falukorv');
+INSERT INTO item_type (name) VALUES ('Fårepølse');
+INSERT INTO item_type (name) VALUES ('Fårikål av lammekjøtt');
+INSERT INTO item_type (name) VALUES ('Feltsalat');
+INSERT INTO item_type (name) VALUES ('Fenalår');
+INSERT INTO item_type (name) VALUES ('Fennikel');
+INSERT INTO item_type (name) VALUES ('Fennikelfrø');
+INSERT INTO item_type (name) VALUES ('Fersken');
+INSERT INTO item_type (name) VALUES ('Feta');
+INSERT INTO item_type (name) VALUES ('Fet fisk');
+INSERT INTO item_type (name) VALUES ('Fiken');
+INSERT INTO item_type (name) VALUES ('Filodeig');
+INSERT INTO item_type (name) VALUES ('Fiskeboller');
+INSERT INTO item_type (name) VALUES ('Fiskeburger');
+INSERT INTO item_type (name) VALUES ('Fiskefarse');
+INSERT INTO item_type (name) VALUES ('Fiskegrateng');
+INSERT INTO item_type (name) VALUES ('Fiskegryte');
+INSERT INTO item_type (name) VALUES ('Fiskekaker');
+INSERT INTO item_type (name) VALUES ('Fiskekarbonader');
+INSERT INTO item_type (name) VALUES ('Fiskepaté');
+INSERT INTO item_type (name) VALUES ('Fiskepinner');
+INSERT INTO item_type (name) VALUES ('Fiskeprodukter og fiskepålegg');
+INSERT INTO item_type (name) VALUES ('Fiskepudding');
+INSERT INTO item_type (name) VALUES ('Fiskesuppe');
+INSERT INTO item_type (name) VALUES ('Fisk og fiskeprodukter');
+INSERT INTO item_type (name) VALUES ('Fisk og skalldyr');
+INSERT INTO item_type (name) VALUES ('Fjørfe');
+INSERT INTO item_type (name) VALUES ('Fjørfe  ');
+INSERT INTO item_type (name) VALUES ('Fjørfe og kjøtt');
+INSERT INTO item_type (name) VALUES ('Flatbrød');
+INSERT INTO item_type (name) VALUES ('Fleskepølse');
+INSERT INTO item_type (name) VALUES ('Floradix');
+INSERT INTO item_type (name) VALUES ('Fløte');
+INSERT INTO item_type (name) VALUES ('Fløtegratinerte poteter');
+INSERT INTO item_type (name) VALUES ('Fløtemysost');
+INSERT INTO item_type (name) VALUES ('Fløyelsgrøt');
+INSERT INTO item_type (name) VALUES ('Focaccia');
+INSERT INTO item_type (name) VALUES ('Formkake');
+INSERT INTO item_type (name) VALUES ('Frityrolje');
+INSERT INTO item_type (name) VALUES ('Frokostkorn');
+INSERT INTO item_type (name) VALUES ('Frokostsalat');
+INSERT INTO item_type (name) VALUES ('Fromasj');
+INSERT INTO item_type (name) VALUES ('Fruktcocktail');
+INSERT INTO item_type (name) VALUES ('Fruktmüsli');
+INSERT INTO item_type (name) VALUES ('Frukt og bær');
+INSERT INTO item_type (name) VALUES ('Fruktpuré');
+INSERT INTO item_type (name) VALUES ('Fruktsaus');
+INSERT INTO item_type (name) VALUES ('Fruktsmoothie');
+INSERT INTO item_type (name) VALUES ('Fruktstang');
+INSERT INTO item_type (name) VALUES ('Fruktsuppe');
+INSERT INTO item_type (name) VALUES ('Fyrstekake');
+INSERT INTO item_type (name) VALUES ('Gaffelbiter');
+INSERT INTO item_type (name) VALUES ('Galiamelon');
+INSERT INTO item_type (name) VALUES ('Gamalost');
+INSERT INTO item_type (name) VALUES ('GÃ¥s');
+INSERT INTO item_type (name) VALUES ('Geitmelk');
+INSERT INTO item_type (name) VALUES ('Geitost');
+INSERT INTO item_type (name) VALUES ('Gelatin');
+INSERT INTO item_type (name) VALUES ('Gelé');
+INSERT INTO item_type (name) VALUES ('Geléfrukt');
+INSERT INTO item_type (name) VALUES ('Ghee');
+INSERT INTO item_type (name) VALUES ('Gjær');
+INSERT INTO item_type (name) VALUES ('Gjedde');
+INSERT INTO item_type (name) VALUES ('Gomme');
+INSERT INTO item_type (name) VALUES ('Gorgonzola');
+INSERT INTO item_type (name) VALUES ('Goro');
+INSERT INTO item_type (name) VALUES ('Goudaost');
+INSERT INTO item_type (name) VALUES ('Gräddost');
+INSERT INTO item_type (name) VALUES ('Granateple');
+INSERT INTO item_type (name) VALUES ('Granola');
+INSERT INTO item_type (name) VALUES ('Grapefrukt');
+INSERT INTO item_type (name) VALUES ('Grapefruktjuice');
+INSERT INTO item_type (name) VALUES ('Gresskar');
+INSERT INTO item_type (name) VALUES ('Gresskarsuppe');
+INSERT INTO item_type (name) VALUES ('Gressløk');
+INSERT INTO item_type (name) VALUES ('Grillpølse');
+INSERT INTO item_type (name) VALUES ('Grønnkål');
+INSERT INTO item_type (name) VALUES ('Grønnsaker');
+INSERT INTO item_type (name) VALUES ('Grønnsaksblanding');
+INSERT INTO item_type (name) VALUES ('Grønnsaksgryte');
+INSERT INTO item_type (name) VALUES ('Grønnsakspostei');
+INSERT INTO item_type (name) VALUES ('Grønnsaksprodukter');
+INSERT INTO item_type (name) VALUES ('Grønnsaksrøre');
+INSERT INTO item_type (name) VALUES ('Grøt ');
+INSERT INTO item_type (name) VALUES ('Grovbakstmel');
+INSERT INTO item_type (name) VALUES ('Gruyere');
+INSERT INTO item_type (name) VALUES ('Gryn');
+INSERT INTO item_type (name) VALUES ('Grytebasis');
+INSERT INTO item_type (name) VALUES ('Guacamole');
+INSERT INTO item_type (name) VALUES ('Guava');
+INSERT INTO item_type (name) VALUES ('Gudbrandsdalsost');
+INSERT INTO item_type (name) VALUES ('Gulasj');
+INSERT INTO item_type (name) VALUES ('Gulløl');
+INSERT INTO item_type (name) VALUES ('Gulost');
+INSERT INTO item_type (name) VALUES ('Gulrot');
+INSERT INTO item_type (name) VALUES ('Gulrotkake');
+INSERT INTO item_type (name) VALUES ('Gulrotsuppe');
+INSERT INTO item_type (name) VALUES ('Gurkemeie');
+INSERT INTO item_type (name) VALUES ('HÃ¥brann');
+INSERT INTO item_type (name) VALUES ('Halloumi');
+INSERT INTO item_type (name) VALUES ('Hamburger');
+INSERT INTO item_type (name) VALUES ('Hamburgerbrød');
+INSERT INTO item_type (name) VALUES ('Hare');
+INSERT INTO item_type (name) VALUES ('Hasselnøtter');
+INSERT INTO item_type (name) VALUES ('Havål');
+INSERT INTO item_type (name) VALUES ('Havre');
+INSERT INTO item_type (name) VALUES ('Havrebasert drikke');
+INSERT INTO item_type (name) VALUES ('Havreflak');
+INSERT INTO item_type (name) VALUES ('Havregrøt');
+INSERT INTO item_type (name) VALUES ('Havregryn');
+INSERT INTO item_type (name) VALUES ('Havrekli');
+INSERT INTO item_type (name) VALUES ('Havremakroner');
+INSERT INTO item_type (name) VALUES ('Havremel');
+INSERT INTO item_type (name) VALUES ('Havre- og bokhvetegrøt');
+INSERT INTO item_type (name) VALUES ('Havre- og mandelbasert drikke');
+INSERT INTO item_type (name) VALUES ('Havreputer');
+INSERT INTO item_type (name) VALUES ('Havreringer');
+INSERT INTO item_type (name) VALUES ('Havsalt');
+INSERT INTO item_type (name) VALUES ('Helmelk');
+INSERT INTO item_type (name) VALUES ('Hetvin');
+INSERT INTO item_type (name) VALUES ('Hirse');
+INSERT INTO item_type (name) VALUES ('Hjerte');
+INSERT INTO item_type (name) VALUES ('Hjertesalat');
+INSERT INTO item_type (name) VALUES ('Hjort');
+INSERT INTO item_type (name) VALUES ('Hodekål');
+INSERT INTO item_type (name) VALUES ('Hollandaisesaus');
+INSERT INTO item_type (name) VALUES ('Høne');
+INSERT INTO item_type (name) VALUES ('Honning');
+INSERT INTO item_type (name) VALUES ('Honningmelon');
+INSERT INTO item_type (name) VALUES ('Hønsefrikassé');
+INSERT INTO item_type (name) VALUES ('Horn');
+INSERT INTO item_type (name) VALUES ('Horngjel');
+INSERT INTO item_type (name) VALUES ('Hummer');
+INSERT INTO item_type (name) VALUES ('Hummus');
+INSERT INTO item_type (name) VALUES ('Husholdningshvitt');
+INSERT INTO item_type (name) VALUES ('Husholdningssaft');
+INSERT INTO item_type (name) VALUES ('Hval');
+INSERT INTO item_type (name) VALUES ('Hvete');
+INSERT INTO item_type (name) VALUES ('Hvetebrikker');
+INSERT INTO item_type (name) VALUES ('Hveteflak ristet');
+INSERT INTO item_type (name) VALUES ('Hvetekake');
+INSERT INTO item_type (name) VALUES ('Hvetekim');
+INSERT INTO item_type (name) VALUES ('Hvetekimolje');
+INSERT INTO item_type (name) VALUES ('Hvetekli');
+INSERT INTO item_type (name) VALUES ('Hvetemel');
+INSERT INTO item_type (name) VALUES ('Hvite bønner');
+INSERT INTO item_type (name) VALUES ('Hvite kakemenn');
+INSERT INTO item_type (name) VALUES ('Hvitløk');
+INSERT INTO item_type (name) VALUES ('Hvitløkspulver');
+INSERT INTO item_type (name) VALUES ('Hvit saus');
+INSERT INTO item_type (name) VALUES ('Hvitting');
+INSERT INTO item_type (name) VALUES ('Hvitvin');
+INSERT INTO item_type (name) VALUES ('Hyllebær');
+INSERT INTO item_type (name) VALUES ('Hyrdepai');
+INSERT INTO item_type (name) VALUES ('Hyse');
+INSERT INTO item_type (name) VALUES ('Ingefær');
+INSERT INTO item_type (name) VALUES ('Ingefærrot');
+INSERT INTO item_type (name) VALUES ('Innbakte pølser');
+INSERT INTO item_type (name) VALUES ('Is');
+INSERT INTO item_type (name) VALUES ('Isbergsalat');
+INSERT INTO item_type (name) VALUES ('Iskaffe');
+INSERT INTO item_type (name) VALUES ('Iskrem');
+INSERT INTO item_type (name) VALUES ('Iste');
+INSERT INTO item_type (name) VALUES ('Italiensk salat');
+INSERT INTO item_type (name) VALUES ('Jackfrukt');
+INSERT INTO item_type (name) VALUES ('Jalapeño');
+INSERT INTO item_type (name) VALUES ('Jarlsberg');
+INSERT INTO item_type (name) VALUES ('Jordbær');
+INSERT INTO item_type (name) VALUES ('Jordbærsyltetøy');
+INSERT INTO item_type (name) VALUES ('Jordskokk');
+INSERT INTO item_type (name) VALUES ('Jordskokksuppe');
+INSERT INTO item_type (name) VALUES ('Juice');
+INSERT INTO item_type (name) VALUES ('Julekake');
+INSERT INTO item_type (name) VALUES ('Kabaret');
+INSERT INTO item_type (name) VALUES ('Kaffe');
+INSERT INTO item_type (name) VALUES ('Kaffefløte');
+INSERT INTO item_type (name) VALUES ('Kaffehvitt');
+INSERT INTO item_type (name) VALUES ('Kaffemelk');
+INSERT INTO item_type (name) VALUES ('Kakao');
+INSERT INTO item_type (name) VALUES ('Kakaopulver');
+INSERT INTO item_type (name) VALUES ('Kakaosmør');
+INSERT INTO item_type (name) VALUES ('Kakebunn');
+INSERT INTO item_type (name) VALUES ('Kakekrem');
+INSERT INTO item_type (name) VALUES ('Kakemiks');
+INSERT INTO item_type (name) VALUES ('Kaktusfiken');
+INSERT INTO item_type (name) VALUES ('Kalkun');
+INSERT INTO item_type (name) VALUES ('Kalkunfilet');
+INSERT INTO item_type (name) VALUES ('Kalkunrull');
+INSERT INTO item_type (name) VALUES ('KÃ¥lrot');
+INSERT INTO item_type (name) VALUES ('KÃ¥lrotstappe');
+INSERT INTO item_type (name) VALUES ('Kalv');
+INSERT INTO item_type (name) VALUES ('Kalverull');
+INSERT INTO item_type (name) VALUES ('Kamskjell');
+INSERT INTO item_type (name) VALUES ('Kanel');
+INSERT INTO item_type (name) VALUES ('Kanelbolle');
+INSERT INTO item_type (name) VALUES ('Kanin');
+INSERT INTO item_type (name) VALUES ('Kantaloupemelon');
+INSERT INTO item_type (name) VALUES ('Kantarell');
+INSERT INTO item_type (name) VALUES ('Kapers');
+INSERT INTO item_type (name) VALUES ('Karamell');
+INSERT INTO item_type (name) VALUES ('Karamellpudding');
+INSERT INTO item_type (name) VALUES ('Karamellsaus');
+INSERT INTO item_type (name) VALUES ('Karbonadedeig');
+INSERT INTO item_type (name) VALUES ('Karbonader');
+INSERT INTO item_type (name) VALUES ('Kardemomme');
+INSERT INTO item_type (name) VALUES ('Karri');
+INSERT INTO item_type (name) VALUES ('Karripasta');
+INSERT INTO item_type (name) VALUES ('Karve');
+INSERT INTO item_type (name) VALUES ('Kassava');
+INSERT INTO item_type (name) VALUES ('Kastanjer');
+INSERT INTO item_type (name) VALUES ('Kaviar');
+INSERT INTO item_type (name) VALUES ('Kaviarmix');
+INSERT INTO item_type (name) VALUES ('Kavring');
+INSERT INTO item_type (name) VALUES ('Ketchup');
+INSERT INTO item_type (name) VALUES ('Kidneybønner');
+INSERT INTO item_type (name) VALUES ('Kikerter');
+INSERT INTO item_type (name) VALUES ('Kikertmel');
+INSERT INTO item_type (name) VALUES ('Kinakål');
+INSERT INTO item_type (name) VALUES ('Kirsebær');
+INSERT INTO item_type (name) VALUES ('Kirsebærsyltetøy');
+INSERT INTO item_type (name) VALUES ('Kiwi');
+INSERT INTO item_type (name) VALUES ('Kjeks');
+INSERT INTO item_type (name) VALUES ('Kjøleskapsgrøt');
+INSERT INTO item_type (name) VALUES ('Kjøttboller');
+INSERT INTO item_type (name) VALUES ('Kjøttbuljong');
+INSERT INTO item_type (name) VALUES ('Kjøttdeig');
+INSERT INTO item_type (name) VALUES ('Kjøttfarse');
+INSERT INTO item_type (name) VALUES ('Kjøttkaker');
+INSERT INTO item_type (name) VALUES ('Kjøttkaker med ertestuing');
+INSERT INTO item_type (name) VALUES ('Kjøttpølse');
+INSERT INTO item_type (name) VALUES ('Kjøttprodukter og kjøttpålegg');
+INSERT INTO item_type (name) VALUES ('Kjøttpudding');
+INSERT INTO item_type (name) VALUES ('Kjøttsuppe med grønnsaker og poteter');
+INSERT INTO item_type (name) VALUES ('Klementin');
+INSERT INTO item_type (name) VALUES ('Klibrød');
+INSERT INTO item_type (name) VALUES ('Klippfisk');
+INSERT INTO item_type (name) VALUES ('Knakkpølse');
+INSERT INTO item_type (name) VALUES ('Knekkebrød');
+INSERT INTO item_type (name) VALUES ('Knutekål');
+INSERT INTO item_type (name) VALUES ('Kokebanan');
+INSERT INTO item_type (name) VALUES ('Kokosbasert drikke');
+INSERT INTO item_type (name) VALUES ('Kokosbolle');
+INSERT INTO item_type (name) VALUES ('Kokosbollekake');
+INSERT INTO item_type (name) VALUES ('Kokosfett');
+INSERT INTO item_type (name) VALUES ('Kokosmakroner');
+INSERT INTO item_type (name) VALUES ('Kokosmasse');
+INSERT INTO item_type (name) VALUES ('Kokosmel');
+INSERT INTO item_type (name) VALUES ('Kokosmelk');
+INSERT INTO item_type (name) VALUES ('Kokosnøtt');
+INSERT INTO item_type (name) VALUES ('Kokosolje');
+INSERT INTO item_type (name) VALUES ('Kokt laks med urtesaus');
+INSERT INTO item_type (name) VALUES ('Kokt skinke');
+INSERT INTO item_type (name) VALUES ('Kompott');
+INSERT INTO item_type (name) VALUES ('Kondensert melk');
+INSERT INTO item_type (name) VALUES ('Kongereke');
+INSERT INTO item_type (name) VALUES ('Koriander');
+INSERT INTO item_type (name) VALUES ('Korianderfrø');
+INSERT INTO item_type (name) VALUES ('Kornblanding');
+INSERT INTO item_type (name) VALUES ('Korn- og bakevarer');
+INSERT INTO item_type (name) VALUES ('Krabbe');
+INSERT INTO item_type (name) VALUES ('Krabbepinner');
+INSERT INTO item_type (name) VALUES ('Kransekake');
+INSERT INTO item_type (name) VALUES ('Krekling');
+INSERT INTO item_type (name) VALUES ('Krem');
+INSERT INTO item_type (name) VALUES ('Kremfløte');
+INSERT INTO item_type (name) VALUES ('Kremost');
+INSERT INTO item_type (name) VALUES ('Kreps');
+INSERT INTO item_type (name) VALUES ('Krepsehale');
+INSERT INTO item_type (name) VALUES ('Kringle');
+INSERT INTO item_type (name) VALUES ('Krumkaker');
+INSERT INTO item_type (name) VALUES ('Kruskakli');
+INSERT INTO item_type (name) VALUES ('Krydderkake');
+INSERT INTO item_type (name) VALUES ('Kumquat');
+INSERT INTO item_type (name) VALUES ('Kvæfjordkake');
+INSERT INTO item_type (name) VALUES ('Kvarg');
+INSERT INTO item_type (name) VALUES ('Kveite');
+INSERT INTO item_type (name) VALUES ('Kylling');
+INSERT INTO item_type (name) VALUES ('Kyllingburger');
+INSERT INTO item_type (name) VALUES ('Kyllinggryte');
+INSERT INTO item_type (name) VALUES ('Kyllingnuggets');
+INSERT INTO item_type (name) VALUES ('Kylling- og kalkunpølse');
+INSERT INTO item_type (name) VALUES ('Kyllingpostei');
+INSERT INTO item_type (name) VALUES ('Kyllingskinn');
+INSERT INTO item_type (name) VALUES ('Lakris');
+INSERT INTO item_type (name) VALUES ('Lakriskonfekt');
+INSERT INTO item_type (name) VALUES ('Laks');
+INSERT INTO item_type (name) VALUES ('Laksepålegg');
+INSERT INTO item_type (name) VALUES ('Lam');
+INSERT INTO item_type (name) VALUES ('Lammefrikassé');
+INSERT INTO item_type (name) VALUES ('Lammerull');
+INSERT INTO item_type (name) VALUES ('Lange');
+INSERT INTO item_type (name) VALUES ('Lapskaus');
+INSERT INTO item_type (name) VALUES ('Lasagne');
+INSERT INTO item_type (name) VALUES ('Laurbærblad');
+INSERT INTO item_type (name) VALUES ('Lefse');
+INSERT INTO item_type (name) VALUES ('Lettmelk');
+INSERT INTO item_type (name) VALUES ('Lettøl');
+INSERT INTO item_type (name) VALUES ('Lettrømme');
+INSERT INTO item_type (name) VALUES ('Lever');
+INSERT INTO item_type (name) VALUES ('Leverpostei');
+INSERT INTO item_type (name) VALUES ('Likør');
+INSERT INTO item_type (name) VALUES ('Limabønner');
+INSERT INTO item_type (name) VALUES ('Lime');
+INSERT INTO item_type (name) VALUES ('Linfrø');
+INSERT INTO item_type (name) VALUES ('Linfrøolje');
+INSERT INTO item_type (name) VALUES ('Linse- og bønnesalat');
+INSERT INTO item_type (name) VALUES ('Linser');
+INSERT INTO item_type (name) VALUES ('Litchi');
+INSERT INTO item_type (name) VALUES ('Loff');
+INSERT INTO item_type (name) VALUES ('Løk');
+INSERT INTO item_type (name) VALUES ('Løksuppe');
+INSERT INTO item_type (name) VALUES ('Lomre');
+INSERT INTO item_type (name) VALUES ('Lotusrot');
+INSERT INTO item_type (name) VALUES ('Lungemos');
+INSERT INTO item_type (name) VALUES ('Lussekatter');
+INSERT INTO item_type (name) VALUES ('Lutefisk');
+INSERT INTO item_type (name) VALUES ('Lyr');
+INSERT INTO item_type (name) VALUES ('Macadamianøtter');
+INSERT INTO item_type (name) VALUES ('Macchiato');
+INSERT INTO item_type (name) VALUES ('Mager fisk');
+INSERT INTO item_type (name) VALUES ('Magerost');
+INSERT INTO item_type (name) VALUES ('Mais');
+INSERT INTO item_type (name) VALUES ('Maismel');
+INSERT INTO item_type (name) VALUES ('Mais- og risflak');
+INSERT INTO item_type (name) VALUES ('Maisolje');
+INSERT INTO item_type (name) VALUES ('Maisstivelse');
+INSERT INTO item_type (name) VALUES ('Majones');
+INSERT INTO item_type (name) VALUES ('Makrell');
+INSERT INTO item_type (name) VALUES ('Makrell i tomat');
+INSERT INTO item_type (name) VALUES ('Manchego');
+INSERT INTO item_type (name) VALUES ('Mandelbasert drikke');
+INSERT INTO item_type (name) VALUES ('Mandelmel');
+INSERT INTO item_type (name) VALUES ('Mandelpålegg');
+INSERT INTO item_type (name) VALUES ('Mandler');
+INSERT INTO item_type (name) VALUES ('Mango');
+INSERT INTO item_type (name) VALUES ('Mangold');
+INSERT INTO item_type (name) VALUES ('Mangosalsa');
+INSERT INTO item_type (name) VALUES ('Marengs');
+INSERT INTO item_type (name) VALUES ('Marengsbunn');
+INSERT INTO item_type (name) VALUES ('Margarin');
+INSERT INTO item_type (name) VALUES ('Margarin og smør');
+INSERT INTO item_type (name) VALUES ('Marsipan');
+INSERT INTO item_type (name) VALUES ('Marsipanbrød');
+INSERT INTO item_type (name) VALUES ('Marsipankake');
+INSERT INTO item_type (name) VALUES ('Mascarpone');
+INSERT INTO item_type (name) VALUES ('Matfett');
+INSERT INTO item_type (name) VALUES ('Matfløte');
+INSERT INTO item_type (name) VALUES ('Matlagingsfett');
+INSERT INTO item_type (name) VALUES ('Matlagingsprodukt');
+INSERT INTO item_type (name) VALUES ('Matolje');
+INSERT INTO item_type (name) VALUES ('Mazarin');
+INSERT INTO item_type (name) VALUES ('Medisterdeig');
+INSERT INTO item_type (name) VALUES ('Medisterkaker');
+INSERT INTO item_type (name) VALUES ('Medisterpølse');
+INSERT INTO item_type (name) VALUES ('Mel');
+INSERT INTO item_type (name) VALUES ('Melis');
+INSERT INTO item_type (name) VALUES ('Melisglasur');
+INSERT INTO item_type (name) VALUES ('Melk');
+INSERT INTO item_type (name) VALUES ('Melkepålegg');
+INSERT INTO item_type (name) VALUES ('Melk og melkebasert drikke');
+INSERT INTO item_type (name) VALUES ('Melk og melkeprodukter');
+INSERT INTO item_type (name) VALUES ('Merian');
+INSERT INTO item_type (name) VALUES ('Meterbønner');
+INSERT INTO item_type (name) VALUES ('Milkshake');
+INSERT INTO item_type (name) VALUES ('Mineralsalt');
+INSERT INTO item_type (name) VALUES ('Mineralvann');
+INSERT INTO item_type (name) VALUES ('Minestronesuppe');
+INSERT INTO item_type (name) VALUES ('Miso');
+INSERT INTO item_type (name) VALUES ('Moreller');
+INSERT INTO item_type (name) VALUES ('Mørkt øl');
+INSERT INTO item_type (name) VALUES ('Mor Monsen');
+INSERT INTO item_type (name) VALUES ('Morrpølse');
+INSERT INTO item_type (name) VALUES ('Morsmelkerstatning');
+INSERT INTO item_type (name) VALUES ('Moussaka');
+INSERT INTO item_type (name) VALUES ('Mozzarella');
+INSERT INTO item_type (name) VALUES ('Muffins');
+INSERT INTO item_type (name) VALUES ('Multekrem');
+INSERT INTO item_type (name) VALUES ('Multer');
+INSERT INTO item_type (name) VALUES ('Multesyltetøy');
+INSERT INTO item_type (name) VALUES ('Multi Vitaminmikstur');
+INSERT INTO item_type (name) VALUES ('Mungbønner');
+INSERT INTO item_type (name) VALUES ('Muskat');
+INSERT INTO item_type (name) VALUES ('Müslibar');
+INSERT INTO item_type (name) VALUES ('Napoleonskake');
+INSERT INTO item_type (name) VALUES ('Nashi');
+INSERT INTO item_type (name) VALUES ('Natron');
+INSERT INTO item_type (name) VALUES ('Nektarin');
+INSERT INTO item_type (name) VALUES ('Nellik');
+INSERT INTO item_type (name) VALUES ('Neper');
+INSERT INTO item_type (name) VALUES ('Nøkkelost');
+INSERT INTO item_type (name) VALUES ('Nori');
+INSERT INTO item_type (name) VALUES ('Normanna');
+INSERT INTO item_type (name) VALUES ('Norvegia');
+INSERT INTO item_type (name) VALUES ('Norzola');
+INSERT INTO item_type (name) VALUES ('Nøtteblanding');
+INSERT INTO item_type (name) VALUES ('Nøttebunn');
+INSERT INTO item_type (name) VALUES ('Nøttekake');
+INSERT INTO item_type (name) VALUES ('Nøttepålegg');
+INSERT INTO item_type (name) VALUES ('Nøtter');
+INSERT INTO item_type (name) VALUES ('Nøttestek');
+INSERT INTO item_type (name) VALUES ('Nudler');
+INSERT INTO item_type (name) VALUES ('Nudler av ris');
+INSERT INTO item_type (name) VALUES ('Nype');
+INSERT INTO item_type (name) VALUES ('Nypesuppe');
+INSERT INTO item_type (name) VALUES ('Nypesyltetøy');
+INSERT INTO item_type (name) VALUES ('Okra');
+INSERT INTO item_type (name) VALUES ('Okserull');
+INSERT INTO item_type (name) VALUES ('Øl');
+INSERT INTO item_type (name) VALUES ('Oliven');
+INSERT INTO item_type (name) VALUES ('Olivenolje');
+INSERT INTO item_type (name) VALUES ('Omelett');
+INSERT INTO item_type (name) VALUES ('Oregano');
+INSERT INTO item_type (name) VALUES ('Oreokake');
+INSERT INTO item_type (name) VALUES ('Ørret');
+INSERT INTO item_type (name) VALUES ('Ost');
+INSERT INTO item_type (name) VALUES ('Østavind');
+INSERT INTO item_type (name) VALUES ('Ostegrill');
+INSERT INTO item_type (name) VALUES ('Ostekake');
+INSERT INTO item_type (name) VALUES ('Ostepop');
+INSERT INTO item_type (name) VALUES ('Østers');
+INSERT INTO item_type (name) VALUES ('Østerssopp');
+INSERT INTO item_type (name) VALUES ('Pære');
+INSERT INTO item_type (name) VALUES ('Pai');
+INSERT INTO item_type (name) VALUES ('Pak-choi');
+INSERT INTO item_type (name) VALUES ('Palmeolje');
+INSERT INTO item_type (name) VALUES ('Paneer');
+INSERT INTO item_type (name) VALUES ('Panetter');
+INSERT INTO item_type (name) VALUES ('Pangasius');
+INSERT INTO item_type (name) VALUES ('Panna cotta');
+INSERT INTO item_type (name) VALUES ('Pannekaker');
+INSERT INTO item_type (name) VALUES ('Papaya');
+INSERT INTO item_type (name) VALUES ('Paprika');
+INSERT INTO item_type (name) VALUES ('Paprika- og kikertpålegg');
+INSERT INTO item_type (name) VALUES ('Paprikapulver');
+INSERT INTO item_type (name) VALUES ('Paradisepler');
+INSERT INTO item_type (name) VALUES ('Paranøtter');
+INSERT INTO item_type (name) VALUES ('Parmesan');
+INSERT INTO item_type (name) VALUES ('Pasjonsfrukt');
+INSERT INTO item_type (name) VALUES ('Pasjonsfruktjuice');
+INSERT INTO item_type (name) VALUES ('Pasta');
+INSERT INTO item_type (name) VALUES ('Pasta bolognese');
+INSERT INTO item_type (name) VALUES ('Pasta med kalkun');
+INSERT INTO item_type (name) VALUES ('Pasta med kjøttsaus');
+INSERT INTO item_type (name) VALUES ('Pastiller');
+INSERT INTO item_type (name) VALUES ('Pastinakk');
+INSERT INTO item_type (name) VALUES ('Pavlova');
+INSERT INTO item_type (name) VALUES ('Peanøtter');
+INSERT INTO item_type (name) VALUES ('Peanøttolje');
+INSERT INTO item_type (name) VALUES ('Peanøttsmør');
+INSERT INTO item_type (name) VALUES ('Pekannøtter');
+INSERT INTO item_type (name) VALUES ('Pepper');
+INSERT INTO item_type (name) VALUES ('Pepperkaker');
+INSERT INTO item_type (name) VALUES ('Peppernøtter');
+INSERT INTO item_type (name) VALUES ('Pepperoni');
+INSERT INTO item_type (name) VALUES ('Pepperrot');
+INSERT INTO item_type (name) VALUES ('Perlebygg');
+INSERT INTO item_type (name) VALUES ('Perlespelt');
+INSERT INTO item_type (name) VALUES ('Persille');
+INSERT INTO item_type (name) VALUES ('Persillerot');
+INSERT INTO item_type (name) VALUES ('Pesto');
+INSERT INTO item_type (name) VALUES ('Physalis');
+INSERT INTO item_type (name) VALUES ('Pigghå');
+INSERT INTO item_type (name) VALUES ('Piggvar');
+INSERT INTO item_type (name) VALUES ('Pils');
+INSERT INTO item_type (name) VALUES ('Pinjekjerner');
+INSERT INTO item_type (name) VALUES ('Pinnekjøtt');
+INSERT INTO item_type (name) VALUES ('Pistasjnøtter');
+INSERT INTO item_type (name) VALUES ('Pitabrød');
+INSERT INTO item_type (name) VALUES ('Pizza');
+INSERT INTO item_type (name) VALUES ('Pizzabunn');
+INSERT INTO item_type (name) VALUES ('Pizzafyllbasis');
+INSERT INTO item_type (name) VALUES ('Pizzaost');
+INSERT INTO item_type (name) VALUES ('Pizzasnurrer');
+INSERT INTO item_type (name) VALUES ('Plantebasert burger');
+INSERT INTO item_type (name) VALUES ('Plantebasert deig');
+INSERT INTO item_type (name) VALUES ('Plantebaserte boller');
+INSERT INTO item_type (name) VALUES ('Plantebaserte middagsboller');
+INSERT INTO item_type (name) VALUES ('Plantebasert grillpølse');
+INSERT INTO item_type (name) VALUES ('Plantebasert middagsdeig');
+INSERT INTO item_type (name) VALUES ('Plantebasert pølse');
+INSERT INTO item_type (name) VALUES ('Plantebasert produkt');
+INSERT INTO item_type (name) VALUES ('Plantebasert schnitzel');
+INSERT INTO item_type (name) VALUES ('Plomme');
+INSERT INTO item_type (name) VALUES ('Plommesyltetøy');
+INSERT INTO item_type (name) VALUES ('Polarbrød');
+INSERT INTO item_type (name) VALUES ('Pølsebrød');
+INSERT INTO item_type (name) VALUES ('Pølser');
+INSERT INTO item_type (name) VALUES ('Pomelo');
+INSERT INTO item_type (name) VALUES ('Pommes frites');
+INSERT INTO item_type (name) VALUES ('Popcorn');
+INSERT INTO item_type (name) VALUES ('Portobellosopp');
+INSERT INTO item_type (name) VALUES ('Port Salut');
+INSERT INTO item_type (name) VALUES ('Potet');
+INSERT INTO item_type (name) VALUES ('Potetchips');
+INSERT INTO item_type (name) VALUES ('Poteter  ');
+INSERT INTO item_type (name) VALUES ('Potetlompe');
+INSERT INTO item_type (name) VALUES ('Potetmel');
+INSERT INTO item_type (name) VALUES ('Potetmos');
+INSERT INTO item_type (name) VALUES ('Potetmospulver');
+INSERT INTO item_type (name) VALUES ('Potet- og purreløksuppe');
+INSERT INTO item_type (name) VALUES ('Potetsalat');
+INSERT INTO item_type (name) VALUES ('Potetskruer');
+INSERT INTO item_type (name) VALUES ('Prim');
+INSERT INTO item_type (name) VALUES ('Produkter av frukt og bær');
+INSERT INTO item_type (name) VALUES ('Psylliumfrø');
+INSERT INTO item_type (name) VALUES ('Pudding');
+INSERT INTO item_type (name) VALUES ('Puffet havre');
+INSERT INTO item_type (name) VALUES ('Puffet hvete');
+INSERT INTO item_type (name) VALUES ('Puffet ris');
+INSERT INTO item_type (name) VALUES ('Pultost');
+INSERT INTO item_type (name) VALUES ('Pulver');
+INSERT INTO item_type (name) VALUES ('Pumpernikkel');
+INSERT INTO item_type (name) VALUES ('Purre');
+INSERT INTO item_type (name) VALUES ('Purreløk');
+INSERT INTO item_type (name) VALUES ('Pytt i panne');
+INSERT INTO item_type (name) VALUES ('Quinoa');
+INSERT INTO item_type (name) VALUES ('Rabarbra');
+INSERT INTO item_type (name) VALUES ('Rabarbragrøt');
+INSERT INTO item_type (name) VALUES ('Rabarbrasuppe');
+INSERT INTO item_type (name) VALUES ('Rabarbrasyltetøy');
+INSERT INTO item_type (name) VALUES ('Raclette');
+INSERT INTO item_type (name) VALUES ('Radicchio rosso');
+INSERT INTO item_type (name) VALUES ('RÃ¥dyr');
+INSERT INTO item_type (name) VALUES ('Rambutan');
+INSERT INTO item_type (name) VALUES ('Rapidsalat');
+INSERT INTO item_type (name) VALUES ('Rapsolje');
+INSERT INTO item_type (name) VALUES ('Reddik');
+INSERT INTO item_type (name) VALUES ('Reinsdyr');
+INSERT INTO item_type (name) VALUES ('Reinsdyrkaker');
+INSERT INTO item_type (name) VALUES ('Reinsdyrpølse');
+INSERT INTO item_type (name) VALUES ('Reinsdyrskav');
+INSERT INTO item_type (name) VALUES ('Reker');
+INSERT INTO item_type (name) VALUES ('Rekesalat');
+INSERT INTO item_type (name) VALUES ('Remulade');
+INSERT INTO item_type (name) VALUES ('Retter med fisk');
+INSERT INTO item_type (name) VALUES ('Retter med fjørfe og kjøtt');
+INSERT INTO item_type (name) VALUES ('Ribberull');
+INSERT INTO item_type (name) VALUES ('Ricotta');
+INSERT INTO item_type (name) VALUES ('Ridderost');
+INSERT INTO item_type (name) VALUES ('Rips');
+INSERT INTO item_type (name) VALUES ('Ris');
+INSERT INTO item_type (name) VALUES ('Risbasert drikke');
+INSERT INTO item_type (name) VALUES ('Risboller');
+INSERT INTO item_type (name) VALUES ('Risgrøt');
+INSERT INTO item_type (name) VALUES ('Riskaker');
+INSERT INTO item_type (name) VALUES ('Riskrem');
+INSERT INTO item_type (name) VALUES ('Rislunsj med jordbær');
+INSERT INTO item_type (name) VALUES ('Rismel');
+INSERT INTO item_type (name) VALUES ('Roastbiff');
+INSERT INTO item_type (name) VALUES ('Rødbete');
+INSERT INTO item_type (name) VALUES ('Rødbeter');
+INSERT INTO item_type (name) VALUES ('Rødbetsalat');
+INSERT INTO item_type (name) VALUES ('Røde bønner');
+INSERT INTO item_type (name) VALUES ('Rødkål');
+INSERT INTO item_type (name) VALUES ('Rødspette');
+INSERT INTO item_type (name) VALUES ('Rødvin');
+INSERT INTO item_type (name) VALUES ('Rogn');
+INSERT INTO item_type (name) VALUES ('Rognebær');
+INSERT INTO item_type (name) VALUES ('Rognleverpostei');
+INSERT INTO item_type (name) VALUES ('Romanosalat');
+INSERT INTO item_type (name) VALUES ('Rømmedressing');
+INSERT INTO item_type (name) VALUES ('Rømmegrøt');
+INSERT INTO item_type (name) VALUES ('Roquefort');
+INSERT INTO item_type (name) VALUES ('Rosenkål');
+INSERT INTO item_type (name) VALUES ('Rosinbolle');
+INSERT INTO item_type (name) VALUES ('Rosiner');
+INSERT INTO item_type (name) VALUES ('Rosmarin');
+INSERT INTO item_type (name) VALUES ('Røye');
+INSERT INTO item_type (name) VALUES ('Ruccolasalat');
+INSERT INTO item_type (name) VALUES ('Rugbrød');
+INSERT INTO item_type (name) VALUES ('Rugmel');
+INSERT INTO item_type (name) VALUES ('Rullekake');
+INSERT INTO item_type (name) VALUES ('Rundstykke');
+INSERT INTO item_type (name) VALUES ('Rundstykker');
+INSERT INTO item_type (name) VALUES ('Rype');
+INSERT INTO item_type (name) VALUES ('Safran');
+INSERT INTO item_type (name) VALUES ('Saft');
+INSERT INTO item_type (name) VALUES ('Saftis');
+INSERT INTO item_type (name) VALUES ('Salami');
+INSERT INTO item_type (name) VALUES ('Salat');
+INSERT INTO item_type (name) VALUES ('Salatdressing');
+INSERT INTO item_type (name) VALUES ('Salat nicoise');
+INSERT INTO item_type (name) VALUES ('Salsiccia');
+INSERT INTO item_type (name) VALUES ('Salt');
+INSERT INTO item_type (name) VALUES ('Saltstenger');
+INSERT INTO item_type (name) VALUES ('Sanasol');
+INSERT INTO item_type (name) VALUES ('Sandefjordsmør');
+INSERT INTO item_type (name) VALUES ('Sandkake');
+INSERT INTO item_type (name) VALUES ('Sarah Bernhard-kake');
+INSERT INTO item_type (name) VALUES ('Sashimi');
+INSERT INTO item_type (name) VALUES ('Sau');
+INSERT INTO item_type (name) VALUES ('Scones');
+INSERT INTO item_type (name) VALUES ('Sei');
+INSERT INTO item_type (name) VALUES ('Seibiff');
+INSERT INTO item_type (name) VALUES ('Seilaks');
+INSERT INTO item_type (name) VALUES ('Seitan');
+INSERT INTO item_type (name) VALUES ('Selbu blå');
+INSERT INTO item_type (name) VALUES ('Sellerirot');
+INSERT INTO item_type (name) VALUES ('Semulegrøt');
+INSERT INTO item_type (name) VALUES ('Semulegryn');
+INSERT INTO item_type (name) VALUES ('Sennep');
+INSERT INTO item_type (name) VALUES ('Sennepsfrø');
+INSERT INTO item_type (name) VALUES ('Sennepssaus');
+INSERT INTO item_type (name) VALUES ('Serinakaker');
+INSERT INTO item_type (name) VALUES ('Servelat');
+INSERT INTO item_type (name) VALUES ('Sesamfrø');
+INSERT INTO item_type (name) VALUES ('Sesamolje');
+INSERT INTO item_type (name) VALUES ('Sesampostei/-pasta');
+INSERT INTO item_type (name) VALUES ('Seterrømme');
+INSERT INTO item_type (name) VALUES ('Sharon');
+INSERT INTO item_type (name) VALUES ('Shiitakesopp');
+INSERT INTO item_type (name) VALUES ('Sik');
+INSERT INTO item_type (name) VALUES ('Sikorisalat');
+INSERT INTO item_type (name) VALUES ('Sild');
+INSERT INTO item_type (name) VALUES ('Sildesalat');
+INSERT INTO item_type (name) VALUES ('Sirup');
+INSERT INTO item_type (name) VALUES ('Sirupskake');
+INSERT INTO item_type (name) VALUES ('Sirupssnipper');
+INSERT INTO item_type (name) VALUES ('Sitron');
+INSERT INTO item_type (name) VALUES ('Sitronfromasj');
+INSERT INTO item_type (name) VALUES ('Sitronsaft');
+INSERT INTO item_type (name) VALUES ('Sitronskall');
+INSERT INTO item_type (name) VALUES ('Sitronterte');
+INSERT INTO item_type (name) VALUES ('Sjalottløk');
+INSERT INTO item_type (name) VALUES ('Sjampinjong');
+INSERT INTO item_type (name) VALUES ('Sjokolade');
+INSERT INTO item_type (name) VALUES ('Sjokoladedrikk');
+INSERT INTO item_type (name) VALUES ('Sjokoladefondant');
+INSERT INTO item_type (name) VALUES ('Sjokoladeglasur');
+INSERT INTO item_type (name) VALUES ('Sjokoladekake');
+INSERT INTO item_type (name) VALUES ('Sjokolademelk');
+INSERT INTO item_type (name) VALUES ('Sjokolademousse');
+INSERT INTO item_type (name) VALUES ('Sjokolade og andre søtsaker');
+INSERT INTO item_type (name) VALUES ('Sjokoladepålegg');
+INSERT INTO item_type (name) VALUES ('Sjokoladepudding');
+INSERT INTO item_type (name) VALUES ('Sjokoladepulver');
+INSERT INTO item_type (name) VALUES ('Sjokoladesaus');
+INSERT INTO item_type (name) VALUES ('Sjøtunge');
+INSERT INTO item_type (name) VALUES ('Sjysaus');
+INSERT INTO item_type (name) VALUES ('Skagenrøre');
+INSERT INTO item_type (name) VALUES ('Skalldyr');
+INSERT INTO item_type (name) VALUES ('Skate');
+INSERT INTO item_type (name) VALUES ('Skinkerull');
+INSERT INTO item_type (name) VALUES ('Skolebrød');
+INSERT INTO item_type (name) VALUES ('Skonrokk');
+INSERT INTO item_type (name) VALUES ('Skorsonnerot');
+INSERT INTO item_type (name) VALUES ('Skumgodt');
+INSERT INTO item_type (name) VALUES ('Skummet melk');
+INSERT INTO item_type (name) VALUES ('Skyr');
+INSERT INTO item_type (name) VALUES ('Smågodt');
+INSERT INTO item_type (name) VALUES ('Småkaker');
+INSERT INTO item_type (name) VALUES ('Smoothie');
+INSERT INTO item_type (name) VALUES ('Smør');
+INSERT INTO item_type (name) VALUES ('Smørkrem');
+INSERT INTO item_type (name) VALUES ('Smuldrepai');
+INSERT INTO item_type (name) VALUES ('Smultringer');
+INSERT INTO item_type (name) VALUES ('Snacks');
+INSERT INTO item_type (name) VALUES ('Snegler');
+INSERT INTO item_type (name) VALUES ('Snickerskake');
+INSERT INTO item_type (name) VALUES ('Sodd');
+INSERT INTO item_type (name) VALUES ('Solbær');
+INSERT INTO item_type (name) VALUES ('Solbærsaft');
+INSERT INTO item_type (name) VALUES ('Solbærsirup');
+INSERT INTO item_type (name) VALUES ('Solbærsyltetøy');
+INSERT INTO item_type (name) VALUES ('Solsikkefrø');
+INSERT INTO item_type (name) VALUES ('Solsikkeolje');
+INSERT INTO item_type (name) VALUES ('Sopprotein');
+INSERT INTO item_type (name) VALUES ('Sorbet');
+INSERT INTO item_type (name) VALUES ('Sorghum');
+INSERT INTO item_type (name) VALUES ('Sosisser');
+INSERT INTO item_type (name) VALUES ('Søt gjærbakst');
+INSERT INTO item_type (name) VALUES ('Søtpotet');
+INSERT INTO item_type (name) VALUES ('Søtpotetsuppe');
+INSERT INTO item_type (name) VALUES ('Soyabasert drikke');
+INSERT INTO item_type (name) VALUES ('Soyabønner');
+INSERT INTO item_type (name) VALUES ('Soyamel');
+INSERT INTO item_type (name) VALUES ('Soyaolje');
+INSERT INTO item_type (name) VALUES ('Soyapølse');
+INSERT INTO item_type (name) VALUES ('Soyaprotein');
+INSERT INTO item_type (name) VALUES ('Soyasaus');
+INSERT INTO item_type (name) VALUES ('Spedbarnsmat');
+INSERT INTO item_type (name) VALUES ('Spekesild');
+INSERT INTO item_type (name) VALUES ('Spekeskinke');
+INSERT INTO item_type (name) VALUES ('Speltmel');
+INSERT INTO item_type (name) VALUES ('Spinat');
+INSERT INTO item_type (name) VALUES ('Spinatsuppe');
+INSERT INTO item_type (name) VALUES ('Spisskål');
+INSERT INTO item_type (name) VALUES ('Squash');
+INSERT INTO item_type (name) VALUES ('Squashfrø');
+INSERT INTO item_type (name) VALUES ('Stabburpølse');
+INSERT INTO item_type (name) VALUES ('Stangselleri');
+INSERT INTO item_type (name) VALUES ('Steinbit');
+INSERT INTO item_type (name) VALUES ('Steinsopp');
+INSERT INTO item_type (name) VALUES ('Sterkøl');
+INSERT INTO item_type (name) VALUES ('Sterkvin');
+INSERT INTO item_type (name) VALUES ('Stikkelsbær');
+INSERT INTO item_type (name) VALUES ('Stilton');
+INSERT INTO item_type (name) VALUES ('Storfe');
+INSERT INTO item_type (name) VALUES ('Strandsnegle');
+INSERT INTO item_type (name) VALUES ('Sukker');
+INSERT INTO item_type (name) VALUES ('Sukkerbrød');
+INSERT INTO item_type (name) VALUES ('Sukkererter');
+INSERT INTO item_type (name) VALUES ('Sukker og søte produkter');
+INSERT INTO item_type (name) VALUES ('Sukkertøy');
+INSERT INTO item_type (name) VALUES ('Suksessterte');
+INSERT INTO item_type (name) VALUES ('Supper');
+INSERT INTO item_type (name) VALUES ('Surimi');
+INSERT INTO item_type (name) VALUES ('Surkål');
+INSERT INTO item_type (name) VALUES ('Sushi');
+INSERT INTO item_type (name) VALUES ('Svarte bønner');
+INSERT INTO item_type (name) VALUES ('Svartøyebønner');
+INSERT INTO item_type (name) VALUES ('Sveitserost');
+INSERT INTO item_type (name) VALUES ('Sveler');
+INSERT INTO item_type (name) VALUES ('Svin');
+INSERT INTO item_type (name) VALUES ('Svinekam');
+INSERT INTO item_type (name) VALUES ('Svinestek med surkål og poteter');
+INSERT INTO item_type (name) VALUES ('Svisker');
+INSERT INTO item_type (name) VALUES ('Sylte');
+INSERT INTO item_type (name) VALUES ('Syltetøy');
+INSERT INTO item_type (name) VALUES ('Syrnet');
+INSERT INTO item_type (name) VALUES ('Syrnet havreprodukt til matlaging');
+INSERT INTO item_type (name) VALUES ('Syrnet melk');
+INSERT INTO item_type (name) VALUES ('Taco kryddermix');
+INSERT INTO item_type (name) VALUES ('Taco med skjell');
+INSERT INTO item_type (name) VALUES ('Taco med tortilla');
+INSERT INTO item_type (name) VALUES ('Tacosaus');
+INSERT INTO item_type (name) VALUES ('Tacoskjell');
+INSERT INTO item_type (name) VALUES ('Tacosuppe');
+INSERT INTO item_type (name) VALUES ('Taffelost');
+INSERT INTO item_type (name) VALUES ('Tamarind');
+INSERT INTO item_type (name) VALUES ('Te');
+INSERT INTO item_type (name) VALUES ('Tebriks');
+INSERT INTO item_type (name) VALUES ('Teffmel');
+INSERT INTO item_type (name) VALUES ('Tempeh');
+INSERT INTO item_type (name) VALUES ('Teriyakisaus');
+INSERT INTO item_type (name) VALUES ('Terte');
+INSERT INTO item_type (name) VALUES ('Tilskuddsblanding');
+INSERT INTO item_type (name) VALUES ('Tilslørte bondepiker');
+INSERT INTO item_type (name) VALUES ('Timian');
+INSERT INTO item_type (name) VALUES ('Tindved');
+INSERT INTO item_type (name) VALUES ('Tofu');
+INSERT INTO item_type (name) VALUES ('Tomat');
+INSERT INTO item_type (name) VALUES ('Tomatbønner');
+INSERT INTO item_type (name) VALUES ('Tomater');
+INSERT INTO item_type (name) VALUES ('Tomatjuice');
+INSERT INTO item_type (name) VALUES ('Tomatpuré');
+INSERT INTO item_type (name) VALUES ('Tomatsalsa');
+INSERT INTO item_type (name) VALUES ('Tomatsuppe');
+INSERT INTO item_type (name) VALUES ('Tørrfisk');
+INSERT INTO item_type (name) VALUES ('Torsk');
+INSERT INTO item_type (name) VALUES ('Tortilla');
+INSERT INTO item_type (name) VALUES ('Tortillachips');
+INSERT INTO item_type (name) VALUES ('Traktkantarell');
+INSERT INTO item_type (name) VALUES ('Tran');
+INSERT INTO item_type (name) VALUES ('Tranebær');
+INSERT INTO item_type (name) VALUES ('Tranebærjuice');
+INSERT INTO item_type (name) VALUES ('Trollkrem');
+INSERT INTO item_type (name) VALUES ('Tropisk juice');
+INSERT INTO item_type (name) VALUES ('Tunfisk');
+INSERT INTO item_type (name) VALUES ('Tyggegummi');
+INSERT INTO item_type (name) VALUES ('Tykklefse');
+INSERT INTO item_type (name) VALUES ('Tyttebær');
+INSERT INTO item_type (name) VALUES ('Tyttebærsyltetøy');
+INSERT INTO item_type (name) VALUES ('Tzatziki');
+INSERT INTO item_type (name) VALUES ('Uer');
+INSERT INTO item_type (name) VALUES ('Urter og krydder');
+INSERT INTO item_type (name) VALUES ('Urtesalt');
+INSERT INTO item_type (name) VALUES ('Vafler');
+INSERT INTO item_type (name) VALUES ('Valmuefrø');
+INSERT INTO item_type (name) VALUES ('Valnøtter');
+INSERT INTO item_type (name) VALUES ('Valnøttolje');
+INSERT INTO item_type (name) VALUES ('Vaniljekrem');
+INSERT INTO item_type (name) VALUES ('Vaniljesaus');
+INSERT INTO item_type (name) VALUES ('Vaniljesukker');
+INSERT INTO item_type (name) VALUES ('Vann');
+INSERT INTO item_type (name) VALUES ('Vannbakkels');
+INSERT INTO item_type (name) VALUES ('Vannkastanje');
+INSERT INTO item_type (name) VALUES ('Vannkastanjer');
+INSERT INTO item_type (name) VALUES ('Vannmelon');
+INSERT INTO item_type (name) VALUES ('Vårløk');
+INSERT INTO item_type (name) VALUES ('Vegetabilsk postei');
+INSERT INTO item_type (name) VALUES ('Vegetarburger');
+INSERT INTO item_type (name) VALUES ('Vegetarlasagne');
+INSERT INTO item_type (name) VALUES ('Vegetarprodukter og retter');
+INSERT INTO item_type (name) VALUES ('Villsvin');
+INSERT INTO item_type (name) VALUES ('Viltsaus');
+INSERT INTO item_type (name) VALUES ('Vin');
+INSERT INTO item_type (name) VALUES ('Vitaminbjørner');
+INSERT INTO item_type (name) VALUES ('Vitamineral');
+INSERT INTO item_type (name) VALUES ('Vita Optimal olje');
+INSERT INTO item_type (name) VALUES ('Vørterkake');
+INSERT INTO item_type (name) VALUES ('Vørterøl');
+INSERT INTO item_type (name) VALUES ('Waldorfsalat');
+INSERT INTO item_type (name) VALUES ('Wasabirot');
+INSERT INTO item_type (name) VALUES ('Wienerbrød');
+INSERT INTO item_type (name) VALUES ('Wienerkringle');
+INSERT INTO item_type (name) VALUES ('Wienerpølse');
+INSERT INTO item_type (name) VALUES ('Wienersnitzel');
+INSERT INTO item_type (name) VALUES ('Wokblanding');
+INSERT INTO item_type (name) VALUES ('Wonton-ark');
+INSERT INTO item_type (name) VALUES ('Wraps');
+INSERT INTO item_type (name) VALUES ('Yams');
+INSERT INTO item_type (name) VALUES ('Yoghurt');
+COMMIT;
diff --git a/api/target/classes/no/freshify/api/FreshifyApiApplication.class b/api/target/classes/no/freshify/api/FreshifyApiApplication.class
new file mode 100644
index 0000000000000000000000000000000000000000..a0639593ac9717d28efae1bb088474923516bf54
Binary files /dev/null and b/api/target/classes/no/freshify/api/FreshifyApiApplication.class differ
diff --git a/api/target/classes/no/freshify/api/GlobalExceptionHandler.class b/api/target/classes/no/freshify/api/GlobalExceptionHandler.class
new file mode 100644
index 0000000000000000000000000000000000000000..55dbe738e04f0baa0e833fe168ee8251b50008d2
Binary files /dev/null and b/api/target/classes/no/freshify/api/GlobalExceptionHandler.class differ
diff --git a/api/target/classes/no/freshify/api/controller/HouseholdController.class b/api/target/classes/no/freshify/api/controller/HouseholdController.class
new file mode 100644
index 0000000000000000000000000000000000000000..b948f84210de68555f4971e8d2a950038e7bba6c
Binary files /dev/null and b/api/target/classes/no/freshify/api/controller/HouseholdController.class differ
diff --git a/api/target/classes/no/freshify/api/controller/HouseholdMemberController.class b/api/target/classes/no/freshify/api/controller/HouseholdMemberController.class
new file mode 100644
index 0000000000000000000000000000000000000000..081a2af2aa91e7c698dcbe64b6394616b17ab21c
Binary files /dev/null and b/api/target/classes/no/freshify/api/controller/HouseholdMemberController.class differ
diff --git a/api/target/classes/no/freshify/api/controller/InventoryController.class b/api/target/classes/no/freshify/api/controller/InventoryController.class
new file mode 100644
index 0000000000000000000000000000000000000000..61693615322d9f30b9e9b17d194209f01cfa834a
Binary files /dev/null and b/api/target/classes/no/freshify/api/controller/InventoryController.class differ
diff --git a/api/target/classes/no/freshify/api/controller/ItemTypeController.class b/api/target/classes/no/freshify/api/controller/ItemTypeController.class
new file mode 100644
index 0000000000000000000000000000000000000000..0720536e74cd0726514696d4f047a2abd68ae9e8
Binary files /dev/null and b/api/target/classes/no/freshify/api/controller/ItemTypeController.class differ
diff --git a/api/target/classes/no/freshify/api/controller/ShoppingListController.class b/api/target/classes/no/freshify/api/controller/ShoppingListController.class
new file mode 100644
index 0000000000000000000000000000000000000000..b02a7dbdc17b45c17c49f344c6c87705b1a93e50
Binary files /dev/null and b/api/target/classes/no/freshify/api/controller/ShoppingListController.class differ
diff --git a/api/target/classes/no/freshify/api/controller/UserController.class b/api/target/classes/no/freshify/api/controller/UserController.class
new file mode 100644
index 0000000000000000000000000000000000000000..bea9b32a04eb46d2549533d7b9f612a728323702
Binary files /dev/null and b/api/target/classes/no/freshify/api/controller/UserController.class differ
diff --git a/api/target/classes/no/freshify/api/exception/HouseholdMemberAlreadyExistsException.class b/api/target/classes/no/freshify/api/exception/HouseholdMemberAlreadyExistsException.class
new file mode 100644
index 0000000000000000000000000000000000000000..2ca7e4dadf51c51be2ede07e72bb722a4721daba
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/HouseholdMemberAlreadyExistsException.class differ
diff --git a/api/target/classes/no/freshify/api/exception/HouseholdNotFoundException.class b/api/target/classes/no/freshify/api/exception/HouseholdNotFoundException.class
new file mode 100644
index 0000000000000000000000000000000000000000..198cc2b0837371a7415b3d51787c58f00b48b740
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/HouseholdNotFoundException.class differ
diff --git a/api/target/classes/no/freshify/api/exception/IllegalItemParameterException.class b/api/target/classes/no/freshify/api/exception/IllegalItemParameterException.class
new file mode 100644
index 0000000000000000000000000000000000000000..ee0f978c0e7493d12b1261266b9610aea0534d48
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/IllegalItemParameterException.class differ
diff --git a/api/target/classes/no/freshify/api/exception/IllegalItemStatusException.class b/api/target/classes/no/freshify/api/exception/IllegalItemStatusException.class
new file mode 100644
index 0000000000000000000000000000000000000000..6e9bdf62ad29df00c995767d0328f952a077e5d6
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/IllegalItemStatusException.class differ
diff --git a/api/target/classes/no/freshify/api/exception/InvalidHouseholdMemberRoleException.class b/api/target/classes/no/freshify/api/exception/InvalidHouseholdMemberRoleException.class
new file mode 100644
index 0000000000000000000000000000000000000000..353d508e271f6cb577987fd381d10b425ddd5b1c
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/InvalidHouseholdMemberRoleException.class differ
diff --git a/api/target/classes/no/freshify/api/exception/InvalidItemCountException.class b/api/target/classes/no/freshify/api/exception/InvalidItemCountException.class
new file mode 100644
index 0000000000000000000000000000000000000000..c1b379e39ad1a3c5342ad586c6100f34ac612d96
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/InvalidItemCountException.class differ
diff --git a/api/target/classes/no/freshify/api/exception/ItemDoesNotBelongToHouseholdException.class b/api/target/classes/no/freshify/api/exception/ItemDoesNotBelongToHouseholdException.class
new file mode 100644
index 0000000000000000000000000000000000000000..685de29c37663c729289d4a41dbcd85193e5cb4f
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/ItemDoesNotBelongToHouseholdException.class differ
diff --git a/api/target/classes/no/freshify/api/exception/ItemNotFoundException.class b/api/target/classes/no/freshify/api/exception/ItemNotFoundException.class
new file mode 100644
index 0000000000000000000000000000000000000000..7bc6db4158ae379b207dc9e7c740bb5223b55c39
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/ItemNotFoundException.class differ
diff --git a/api/target/classes/no/freshify/api/exception/ItemTypeNotFoundException.class b/api/target/classes/no/freshify/api/exception/ItemTypeNotFoundException.class
new file mode 100644
index 0000000000000000000000000000000000000000..392f2a0d0ec0b1bfb73c164e8d69fd5f63cf7cd2
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/ItemTypeNotFoundException.class differ
diff --git a/api/target/classes/no/freshify/api/exception/ItemTypesNotFoundException.class b/api/target/classes/no/freshify/api/exception/ItemTypesNotFoundException.class
new file mode 100644
index 0000000000000000000000000000000000000000..9140baf4418295aa2dfbc40a435bfa7b743e5524
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/ItemTypesNotFoundException.class differ
diff --git a/api/target/classes/no/freshify/api/exception/ShoppingListEntryAlreadyExistsException.class b/api/target/classes/no/freshify/api/exception/ShoppingListEntryAlreadyExistsException.class
new file mode 100644
index 0000000000000000000000000000000000000000..b33c1fd3486ab502636078cf70da87df1dfafeae
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/ShoppingListEntryAlreadyExistsException.class differ
diff --git a/api/target/classes/no/freshify/api/exception/ShoppingListEntryNotFoundException.class b/api/target/classes/no/freshify/api/exception/ShoppingListEntryNotFoundException.class
new file mode 100644
index 0000000000000000000000000000000000000000..494ba2c7cffc3994c3933196a6f6bba3eee70a18
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/ShoppingListEntryNotFoundException.class differ
diff --git a/api/target/classes/no/freshify/api/exception/UserDoesNotBelongToHouseholdException.class b/api/target/classes/no/freshify/api/exception/UserDoesNotBelongToHouseholdException.class
new file mode 100644
index 0000000000000000000000000000000000000000..ab6f66b66aaae0a5efa5ab0b6af5b343a26a33fd
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/UserDoesNotBelongToHouseholdException.class differ
diff --git a/api/target/classes/no/freshify/api/exception/UserNotFoundException.class b/api/target/classes/no/freshify/api/exception/UserNotFoundException.class
new file mode 100644
index 0000000000000000000000000000000000000000..33141a3aa5f1b11d2209df04d6866f25ed6f87d1
Binary files /dev/null and b/api/target/classes/no/freshify/api/exception/UserNotFoundException.class differ
diff --git a/api/target/classes/no/freshify/api/model/Household.class b/api/target/classes/no/freshify/api/model/Household.class
new file mode 100644
index 0000000000000000000000000000000000000000..9d3f2ce2fecf6b3264b6b3b37abebb8131ebbbcb
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/Household.class differ
diff --git a/api/target/classes/no/freshify/api/model/HouseholdMember.class b/api/target/classes/no/freshify/api/model/HouseholdMember.class
new file mode 100644
index 0000000000000000000000000000000000000000..d4138b1a7c23ef13003b556291f41024f1cee750
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/HouseholdMember.class differ
diff --git a/api/target/classes/no/freshify/api/model/HouseholdMemberKey.class b/api/target/classes/no/freshify/api/model/HouseholdMemberKey.class
new file mode 100644
index 0000000000000000000000000000000000000000..62aa2f14991fbda45de8cb186b9fcaf7419f93c8
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/HouseholdMemberKey.class differ
diff --git a/api/target/classes/no/freshify/api/model/HouseholdMemberRole.class b/api/target/classes/no/freshify/api/model/HouseholdMemberRole.class
new file mode 100644
index 0000000000000000000000000000000000000000..8f7d7ecb924df8f7455ef58e951149af6d3cd828
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/HouseholdMemberRole.class differ
diff --git a/api/target/classes/no/freshify/api/model/Item.class b/api/target/classes/no/freshify/api/model/Item.class
new file mode 100644
index 0000000000000000000000000000000000000000..b688641d6952c34ef9beb5dca757c50c1eaa3a7b
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/Item.class differ
diff --git a/api/target/classes/no/freshify/api/model/ItemStatus.class b/api/target/classes/no/freshify/api/model/ItemStatus.class
new file mode 100644
index 0000000000000000000000000000000000000000..64e06d80fd7eadc7d4b702cca27ac3981a0f73fc
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/ItemStatus.class differ
diff --git a/api/target/classes/no/freshify/api/model/ItemType.class b/api/target/classes/no/freshify/api/model/ItemType.class
new file mode 100644
index 0000000000000000000000000000000000000000..4385e0b62e91a1e5cfaa54d03562fd157932e5f1
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/ItemType.class differ
diff --git a/api/target/classes/no/freshify/api/model/ShoppingListEntry.class b/api/target/classes/no/freshify/api/model/ShoppingListEntry.class
new file mode 100644
index 0000000000000000000000000000000000000000..8bf16b3d49a82db603b42b9ce6b303824adee143
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/ShoppingListEntry.class differ
diff --git a/api/target/classes/no/freshify/api/model/User.class b/api/target/classes/no/freshify/api/model/User.class
new file mode 100644
index 0000000000000000000000000000000000000000..4a0f7378b059d306697839a8a3179bbd13974ae3
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/User.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/CreateHousehold.class b/api/target/classes/no/freshify/api/model/dto/CreateHousehold.class
new file mode 100644
index 0000000000000000000000000000000000000000..e539dda79ba105b42e6fcea45ca947424015cb2c
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/CreateHousehold.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/CreateUser.class b/api/target/classes/no/freshify/api/model/dto/CreateUser.class
new file mode 100644
index 0000000000000000000000000000000000000000..7260dc6e6e2e993ba588d63e63a6246582966815
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/CreateUser.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/HouseholdDTO.class b/api/target/classes/no/freshify/api/model/dto/HouseholdDTO.class
new file mode 100644
index 0000000000000000000000000000000000000000..dc6209904498162e074dc6092e73af9bc6a4362a
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/HouseholdDTO.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/HouseholdMemberDTO.class b/api/target/classes/no/freshify/api/model/dto/HouseholdMemberDTO.class
new file mode 100644
index 0000000000000000000000000000000000000000..78aa9cff21bc0931f30177f0cfb76ff511c943b6
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/HouseholdMemberDTO.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/InventoryItem.class b/api/target/classes/no/freshify/api/model/dto/InventoryItem.class
new file mode 100644
index 0000000000000000000000000000000000000000..d7e7924eaa6698677d7bc49134f6c8e9d087cb5b
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/InventoryItem.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/ItemTypeDTO.class b/api/target/classes/no/freshify/api/model/dto/ItemTypeDTO.class
new file mode 100644
index 0000000000000000000000000000000000000000..a977658b08934830bd63f81d1eb8f3834c186483
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/ItemTypeDTO.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/LoginUser.class b/api/target/classes/no/freshify/api/model/dto/LoginUser.class
new file mode 100644
index 0000000000000000000000000000000000000000..8c885d48ae6b9842444bddc63ab27a899eb89b73
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/LoginUser.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/ShoppingListEntryEditRequest.class b/api/target/classes/no/freshify/api/model/dto/ShoppingListEntryEditRequest.class
new file mode 100644
index 0000000000000000000000000000000000000000..b206e383785686444ff800845f469a434c613469
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/ShoppingListEntryEditRequest.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/ShoppingListEntryRequest.class b/api/target/classes/no/freshify/api/model/dto/ShoppingListEntryRequest.class
new file mode 100644
index 0000000000000000000000000000000000000000..907a4c794d2cbf667e00ed7c42700c3e076e5c8a
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/ShoppingListEntryRequest.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/ShoppingListEntryResponse.class b/api/target/classes/no/freshify/api/model/dto/ShoppingListEntryResponse.class
new file mode 100644
index 0000000000000000000000000000000000000000..c9f6aeaaa6f9564d9a1d7dd3508a052db9ac1705
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/ShoppingListEntryResponse.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/UpdateInventoryItem.class b/api/target/classes/no/freshify/api/model/dto/UpdateInventoryItem.class
new file mode 100644
index 0000000000000000000000000000000000000000..e1b2ee24d30695946a61018b69b14be6fd85ec1f
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/UpdateInventoryItem.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/UpdateUser.class b/api/target/classes/no/freshify/api/model/dto/UpdateUser.class
new file mode 100644
index 0000000000000000000000000000000000000000..b1675e49d3eb92b2227355ae65d2ef3ee308bdd9
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/UpdateUser.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/UserFull.class b/api/target/classes/no/freshify/api/model/dto/UserFull.class
new file mode 100644
index 0000000000000000000000000000000000000000..db963b563ddc8ad363cf5345cd8e746114abd6f3
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/UserFull.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/UserId.class b/api/target/classes/no/freshify/api/model/dto/UserId.class
new file mode 100644
index 0000000000000000000000000000000000000000..9579bf34ea2a293cb7b782841979caf42c435208
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/UserId.class differ
diff --git a/api/target/classes/no/freshify/api/model/dto/UserTypeRequest.class b/api/target/classes/no/freshify/api/model/dto/UserTypeRequest.class
new file mode 100644
index 0000000000000000000000000000000000000000..f9726a06cff116a50bbcf30df9e6bba7c551466b
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/dto/UserTypeRequest.class differ
diff --git a/api/target/classes/no/freshify/api/model/mapper/HouseholdMapper.class b/api/target/classes/no/freshify/api/model/mapper/HouseholdMapper.class
new file mode 100644
index 0000000000000000000000000000000000000000..23c4613fef8f00b7e43d6e9e665f546c076fdc1c
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/mapper/HouseholdMapper.class differ
diff --git a/api/target/classes/no/freshify/api/model/mapper/HouseholdMapperImpl.class b/api/target/classes/no/freshify/api/model/mapper/HouseholdMapperImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..637c23dab2c21985ebfd15f4ddfd80cf5928990f
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/mapper/HouseholdMapperImpl.class differ
diff --git a/api/target/classes/no/freshify/api/model/mapper/HouseholdMemberMapper.class b/api/target/classes/no/freshify/api/model/mapper/HouseholdMemberMapper.class
new file mode 100644
index 0000000000000000000000000000000000000000..76241d60e2e7893faf8abc4a5f463351107d0b7b
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/mapper/HouseholdMemberMapper.class differ
diff --git a/api/target/classes/no/freshify/api/model/mapper/HouseholdMemberMapperImpl.class b/api/target/classes/no/freshify/api/model/mapper/HouseholdMemberMapperImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..7539af08ec850660d5c61e4fa131f8696fc8f316
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/mapper/HouseholdMemberMapperImpl.class differ
diff --git a/api/target/classes/no/freshify/api/model/mapper/ItemMapper.class b/api/target/classes/no/freshify/api/model/mapper/ItemMapper.class
new file mode 100644
index 0000000000000000000000000000000000000000..87ae4a7776dfba4474715b88e129408dec2d90ee
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/mapper/ItemMapper.class differ
diff --git a/api/target/classes/no/freshify/api/model/mapper/ItemMapperImpl.class b/api/target/classes/no/freshify/api/model/mapper/ItemMapperImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..f706573ff62f86aae997966b629c6e2861bb78a2
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/mapper/ItemMapperImpl.class differ
diff --git a/api/target/classes/no/freshify/api/model/mapper/ShoppingListEntryMapper.class b/api/target/classes/no/freshify/api/model/mapper/ShoppingListEntryMapper.class
new file mode 100644
index 0000000000000000000000000000000000000000..387e6536c576a5f0d9971c0a8b241ed1cc584419
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/mapper/ShoppingListEntryMapper.class differ
diff --git a/api/target/classes/no/freshify/api/model/mapper/ShoppingListEntryMapperImpl.class b/api/target/classes/no/freshify/api/model/mapper/ShoppingListEntryMapperImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..ac5c6d6d2fe4e096f4d9d9259bd8a077abd837c4
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/mapper/ShoppingListEntryMapperImpl.class differ
diff --git a/api/target/classes/no/freshify/api/model/mapper/UserMapper.class b/api/target/classes/no/freshify/api/model/mapper/UserMapper.class
new file mode 100644
index 0000000000000000000000000000000000000000..4c559384960c9f3bd258e867a0a9f0e3ef3bf020
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/mapper/UserMapper.class differ
diff --git a/api/target/classes/no/freshify/api/model/mapper/UserMapperImpl.class b/api/target/classes/no/freshify/api/model/mapper/UserMapperImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..f248b313a1e65a787c72caca7065ee8fbacd0867
Binary files /dev/null and b/api/target/classes/no/freshify/api/model/mapper/UserMapperImpl.class differ
diff --git a/api/target/classes/no/freshify/api/repository/HouseholdMemberRepository.class b/api/target/classes/no/freshify/api/repository/HouseholdMemberRepository.class
new file mode 100644
index 0000000000000000000000000000000000000000..64892776a0a1ec7b9949ae3071fa29408e3421c1
Binary files /dev/null and b/api/target/classes/no/freshify/api/repository/HouseholdMemberRepository.class differ
diff --git a/api/target/classes/no/freshify/api/repository/HouseholdRepository.class b/api/target/classes/no/freshify/api/repository/HouseholdRepository.class
new file mode 100644
index 0000000000000000000000000000000000000000..97aa6195db34b3bd6c6cfe7f1c5d48abb5061d7e
Binary files /dev/null and b/api/target/classes/no/freshify/api/repository/HouseholdRepository.class differ
diff --git a/api/target/classes/no/freshify/api/repository/ItemRepository.class b/api/target/classes/no/freshify/api/repository/ItemRepository.class
new file mode 100644
index 0000000000000000000000000000000000000000..d075ff860a0eafc4c73e09bedc720b0abcb38cd5
Binary files /dev/null and b/api/target/classes/no/freshify/api/repository/ItemRepository.class differ
diff --git a/api/target/classes/no/freshify/api/repository/ItemTypeRepository.class b/api/target/classes/no/freshify/api/repository/ItemTypeRepository.class
new file mode 100644
index 0000000000000000000000000000000000000000..21d39293b2bf12e9f5777d02fbec95662983df76
Binary files /dev/null and b/api/target/classes/no/freshify/api/repository/ItemTypeRepository.class differ
diff --git a/api/target/classes/no/freshify/api/repository/ShoppingListEntryRepository.class b/api/target/classes/no/freshify/api/repository/ShoppingListEntryRepository.class
new file mode 100644
index 0000000000000000000000000000000000000000..b03733859794ac2466b900f0c36d426519816d7d
Binary files /dev/null and b/api/target/classes/no/freshify/api/repository/ShoppingListEntryRepository.class differ
diff --git a/api/target/classes/no/freshify/api/repository/UserRepository.class b/api/target/classes/no/freshify/api/repository/UserRepository.class
new file mode 100644
index 0000000000000000000000000000000000000000..b8522000f97f717e94edeeda2974997318ed2aca
Binary files /dev/null and b/api/target/classes/no/freshify/api/repository/UserRepository.class differ
diff --git a/api/target/classes/no/freshify/api/security/AuthenticationService.class b/api/target/classes/no/freshify/api/security/AuthenticationService.class
new file mode 100644
index 0000000000000000000000000000000000000000..abcf1c26a2057ea5db7ffca01bc3716d9762c5bf
Binary files /dev/null and b/api/target/classes/no/freshify/api/security/AuthenticationService.class differ
diff --git a/api/target/classes/no/freshify/api/security/CookieFactory.class b/api/target/classes/no/freshify/api/security/CookieFactory.class
new file mode 100644
index 0000000000000000000000000000000000000000..465e17637925e2ab9af099a52892b1365503cc7a
Binary files /dev/null and b/api/target/classes/no/freshify/api/security/CookieFactory.class differ
diff --git a/api/target/classes/no/freshify/api/security/JwtTokenFilter.class b/api/target/classes/no/freshify/api/security/JwtTokenFilter.class
new file mode 100644
index 0000000000000000000000000000000000000000..7b09649ed3045684db8207eab62c3acd4246dc4d
Binary files /dev/null and b/api/target/classes/no/freshify/api/security/JwtTokenFilter.class differ
diff --git a/api/target/classes/no/freshify/api/security/JwtUserDetailsService.class b/api/target/classes/no/freshify/api/security/JwtUserDetailsService.class
new file mode 100644
index 0000000000000000000000000000000000000000..d01789ef423f6b636277d018719024c76007c373
Binary files /dev/null and b/api/target/classes/no/freshify/api/security/JwtUserDetailsService.class differ
diff --git a/api/target/classes/no/freshify/api/security/PermissionEvaluatorImpl.class b/api/target/classes/no/freshify/api/security/PermissionEvaluatorImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..41ab972bb08ead17b561e46d88d3edffe192da97
Binary files /dev/null and b/api/target/classes/no/freshify/api/security/PermissionEvaluatorImpl.class differ
diff --git a/api/target/classes/no/freshify/api/security/UserAuthentication.class b/api/target/classes/no/freshify/api/security/UserAuthentication.class
new file mode 100644
index 0000000000000000000000000000000000000000..0d966afe3f530e0b769fb77b77a9b657e055651e
Binary files /dev/null and b/api/target/classes/no/freshify/api/security/UserAuthentication.class differ
diff --git a/api/target/classes/no/freshify/api/security/UserDetailsImpl.class b/api/target/classes/no/freshify/api/security/UserDetailsImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..b904d022886d1672b3e0291da17422f35eb97d31
Binary files /dev/null and b/api/target/classes/no/freshify/api/security/UserDetailsImpl.class differ
diff --git a/api/target/classes/no/freshify/api/security/WebSecurityConfiguration$1.class b/api/target/classes/no/freshify/api/security/WebSecurityConfiguration$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..58dbe052b6e0db9066e95551f6e5b74ab97a5a5e
Binary files /dev/null and b/api/target/classes/no/freshify/api/security/WebSecurityConfiguration$1.class differ
diff --git a/api/target/classes/no/freshify/api/security/WebSecurityConfiguration.class b/api/target/classes/no/freshify/api/security/WebSecurityConfiguration.class
new file mode 100644
index 0000000000000000000000000000000000000000..909616ee0555de945a98ad957f52c784e4327348
Binary files /dev/null and b/api/target/classes/no/freshify/api/security/WebSecurityConfiguration.class differ
diff --git a/api/target/classes/no/freshify/api/service/HouseholdMemberService.class b/api/target/classes/no/freshify/api/service/HouseholdMemberService.class
new file mode 100644
index 0000000000000000000000000000000000000000..cd22e03dd580dbfbeed179df92df58f4027c7351
Binary files /dev/null and b/api/target/classes/no/freshify/api/service/HouseholdMemberService.class differ
diff --git a/api/target/classes/no/freshify/api/service/HouseholdService.class b/api/target/classes/no/freshify/api/service/HouseholdService.class
new file mode 100644
index 0000000000000000000000000000000000000000..43c8ce175f3a2e6ac93c4231a4d07665cab330cd
Binary files /dev/null and b/api/target/classes/no/freshify/api/service/HouseholdService.class differ
diff --git a/api/target/classes/no/freshify/api/service/ItemService.class b/api/target/classes/no/freshify/api/service/ItemService.class
new file mode 100644
index 0000000000000000000000000000000000000000..9a4fa62cf4093c177a32dc571db32dc437125e00
Binary files /dev/null and b/api/target/classes/no/freshify/api/service/ItemService.class differ
diff --git a/api/target/classes/no/freshify/api/service/ItemTypeService.class b/api/target/classes/no/freshify/api/service/ItemTypeService.class
new file mode 100644
index 0000000000000000000000000000000000000000..fb3fe697c10e788be03926c1070bd8d2da064a85
Binary files /dev/null and b/api/target/classes/no/freshify/api/service/ItemTypeService.class differ
diff --git a/api/target/classes/no/freshify/api/service/ShoppingListEntryService.class b/api/target/classes/no/freshify/api/service/ShoppingListEntryService.class
new file mode 100644
index 0000000000000000000000000000000000000000..f32a5b75909ce012b75509aeb5dcf0e57347309c
Binary files /dev/null and b/api/target/classes/no/freshify/api/service/ShoppingListEntryService.class differ
diff --git a/api/target/classes/no/freshify/api/service/UserService.class b/api/target/classes/no/freshify/api/service/UserService.class
new file mode 100644
index 0000000000000000000000000000000000000000..006ca0eb9a2516841f003748eee55a173cf5f8d0
Binary files /dev/null and b/api/target/classes/no/freshify/api/service/UserService.class differ
diff --git a/api/target/generated-sources/annotations/no/freshify/api/model/mapper/HouseholdMapperImpl.java b/api/target/generated-sources/annotations/no/freshify/api/model/mapper/HouseholdMapperImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..b0120a8e1e4f132e244c4f59bb28f303ed9558f8
--- /dev/null
+++ b/api/target/generated-sources/annotations/no/freshify/api/model/mapper/HouseholdMapperImpl.java
@@ -0,0 +1,43 @@
+package no.freshify.api.model.mapper;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.annotation.processing.Generated;
+import no.freshify.api.model.Household;
+import no.freshify.api.model.dto.HouseholdDTO;
+
+@Generated(
+    value = "org.mapstruct.ap.MappingProcessor",
+    date = "2023-04-28T10:55:48+0200",
+    comments = "version: 1.4.2.Final, compiler: javac, environment: Java 17.0.6 (Oracle Corporation)"
+)
+public class HouseholdMapperImpl extends HouseholdMapper {
+
+    @Override
+    public HouseholdDTO toHouseholdDTO(Household household) {
+        if ( household == null ) {
+            return null;
+        }
+
+        HouseholdDTO householdDTO = new HouseholdDTO();
+
+        householdDTO.setId( household.getId() );
+        householdDTO.setName( household.getName() );
+
+        return householdDTO;
+    }
+
+    @Override
+    public List<HouseholdDTO> toHouseholdDTO(List<Household> household) {
+        if ( household == null ) {
+            return null;
+        }
+
+        List<HouseholdDTO> list = new ArrayList<HouseholdDTO>( household.size() );
+        for ( Household household1 : household ) {
+            list.add( toHouseholdDTO( household1 ) );
+        }
+
+        return list;
+    }
+}
diff --git a/api/target/generated-sources/annotations/no/freshify/api/model/mapper/HouseholdMemberMapperImpl.java b/api/target/generated-sources/annotations/no/freshify/api/model/mapper/HouseholdMemberMapperImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..1b60356883801e6cc0490e10c49f9131ee2278b0
--- /dev/null
+++ b/api/target/generated-sources/annotations/no/freshify/api/model/mapper/HouseholdMemberMapperImpl.java
@@ -0,0 +1,60 @@
+package no.freshify.api.model.mapper;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.annotation.processing.Generated;
+import no.freshify.api.model.HouseholdMember;
+import no.freshify.api.model.User;
+import no.freshify.api.model.dto.HouseholdMemberDTO;
+import no.freshify.api.model.dto.UserFull;
+
+@Generated(
+    value = "org.mapstruct.ap.MappingProcessor",
+    date = "2023-04-28T10:55:48+0200",
+    comments = "version: 1.4.2.Final, compiler: javac, environment: Java 17.0.6 (Oracle Corporation)"
+)
+public class HouseholdMemberMapperImpl extends HouseholdMemberMapper {
+
+    @Override
+    public HouseholdMemberDTO toHouseholdMemberDTO(HouseholdMember householdMember) {
+        if ( householdMember == null ) {
+            return null;
+        }
+
+        HouseholdMemberDTO householdMemberDTO = new HouseholdMemberDTO();
+
+        householdMemberDTO.setUserType( householdMember.getRole() );
+        householdMemberDTO.setId( householdMember.getId() );
+        householdMemberDTO.setUser( userToUserFull( householdMember.getUser() ) );
+
+        return householdMemberDTO;
+    }
+
+    @Override
+    public List<HouseholdMemberDTO> householdMemberDTOS(List<HouseholdMember> householdMembers) {
+        if ( householdMembers == null ) {
+            return null;
+        }
+
+        List<HouseholdMemberDTO> list = new ArrayList<HouseholdMemberDTO>( householdMembers.size() );
+        for ( HouseholdMember householdMember : householdMembers ) {
+            list.add( toHouseholdMemberDTO( householdMember ) );
+        }
+
+        return list;
+    }
+
+    protected UserFull userToUserFull(User user) {
+        if ( user == null ) {
+            return null;
+        }
+
+        UserFull userFull = new UserFull();
+
+        userFull.setId( user.getId() );
+        userFull.setFirstName( user.getFirstName() );
+        userFull.setEmail( user.getEmail() );
+
+        return userFull;
+    }
+}
diff --git a/api/target/generated-sources/annotations/no/freshify/api/model/mapper/ItemMapperImpl.java b/api/target/generated-sources/annotations/no/freshify/api/model/mapper/ItemMapperImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..a27343ad98e6b6baa08ee27fbe1df167c67a0581
--- /dev/null
+++ b/api/target/generated-sources/annotations/no/freshify/api/model/mapper/ItemMapperImpl.java
@@ -0,0 +1,99 @@
+package no.freshify.api.model.mapper;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.annotation.processing.Generated;
+import no.freshify.api.exception.IllegalItemParameterException;
+import no.freshify.api.model.Item;
+import no.freshify.api.model.ItemType;
+import no.freshify.api.model.dto.InventoryItem;
+import no.freshify.api.model.dto.ItemTypeDTO;
+import no.freshify.api.model.dto.UpdateInventoryItem;
+import org.mapstruct.factory.Mappers;
+
+@Generated(
+    value = "org.mapstruct.ap.MappingProcessor",
+    date = "2023-04-28T10:55:48+0200",
+    comments = "version: 1.4.2.Final, compiler: javac, environment: Java 17.0.6 (Oracle Corporation)"
+)
+public class ItemMapperImpl extends ItemMapper {
+
+    private final UserMapper userMapper = Mappers.getMapper( UserMapper.class );
+
+    @Override
+    public InventoryItem toItemDto(Item item) {
+        if ( item == null ) {
+            return null;
+        }
+
+        InventoryItem inventoryItem = new InventoryItem();
+
+        inventoryItem.setId( item.getId() );
+        inventoryItem.setLastChanged( item.getLastChanged() );
+        inventoryItem.setBought( item.getBought() );
+        inventoryItem.setRemaining( item.getRemaining() );
+        inventoryItem.setSuggested( item.getSuggested() );
+        inventoryItem.setStatus( item.getStatus() );
+        inventoryItem.setType( item.getType() );
+        inventoryItem.setAddedBy( userMapper.toUserFull( item.getAddedBy() ) );
+
+        return inventoryItem;
+    }
+
+    @Override
+    public List<InventoryItem> toItemDtos(List<Item> items) {
+        if ( items == null ) {
+            return null;
+        }
+
+        List<InventoryItem> list = new ArrayList<InventoryItem>( items.size() );
+        for ( Item item : items ) {
+            list.add( toItemDto( item ) );
+        }
+
+        return list;
+    }
+
+    @Override
+    public ItemTypeDTO toItemTypeDTO(ItemType itemType) {
+        if ( itemType == null ) {
+            return null;
+        }
+
+        ItemTypeDTO itemTypeDTO = new ItemTypeDTO();
+
+        itemTypeDTO.setId( itemType.getId() );
+        itemTypeDTO.setName( itemType.getName() );
+
+        return itemTypeDTO;
+    }
+
+    @Override
+    public List<ItemTypeDTO> toItemTypeDTO(List<ItemType> itemTypes) {
+        if ( itemTypes == null ) {
+            return null;
+        }
+
+        List<ItemTypeDTO> list = new ArrayList<ItemTypeDTO>( itemTypes.size() );
+        for ( ItemType itemType : itemTypes ) {
+            list.add( toItemTypeDTO( itemType ) );
+        }
+
+        return list;
+    }
+
+    @Override
+    public Item toItem(UpdateInventoryItem updateInventoryItem) throws IllegalItemParameterException {
+        if ( updateInventoryItem == null ) {
+            return null;
+        }
+
+        Item item = new Item();
+
+        item.setId( updateInventoryItem.getItemId() );
+        item.setStatus( updateInventoryItem.getState() );
+        item.setRemaining( updateInventoryItem.getRemaining() );
+
+        return item;
+    }
+}
diff --git a/api/target/generated-sources/annotations/no/freshify/api/model/mapper/ShoppingListEntryMapperImpl.java b/api/target/generated-sources/annotations/no/freshify/api/model/mapper/ShoppingListEntryMapperImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..67f5c33581aa084af14e09a22d90a94b80f71114
--- /dev/null
+++ b/api/target/generated-sources/annotations/no/freshify/api/model/mapper/ShoppingListEntryMapperImpl.java
@@ -0,0 +1,96 @@
+package no.freshify.api.model.mapper;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.annotation.processing.Generated;
+import no.freshify.api.model.ItemType;
+import no.freshify.api.model.ShoppingListEntry;
+import no.freshify.api.model.dto.ShoppingListEntryEditRequest;
+import no.freshify.api.model.dto.ShoppingListEntryRequest;
+import no.freshify.api.model.dto.ShoppingListEntryResponse;
+import org.mapstruct.factory.Mappers;
+
+@Generated(
+    value = "org.mapstruct.ap.MappingProcessor",
+    date = "2023-04-28T10:55:48+0200",
+    comments = "version: 1.4.2.Final, compiler: javac, environment: Java 17.0.6 (Oracle Corporation)"
+)
+public class ShoppingListEntryMapperImpl extends ShoppingListEntryMapper {
+
+    private final UserMapper userMapper = Mappers.getMapper( UserMapper.class );
+
+    @Override
+    public ShoppingListEntryResponse toShoppingListEntryResponse(ShoppingListEntry shoppingListEntry) {
+        if ( shoppingListEntry == null ) {
+            return null;
+        }
+
+        ShoppingListEntryResponse shoppingListEntryResponse = new ShoppingListEntryResponse();
+
+        shoppingListEntryResponse.setId( shoppingListEntry.getId() );
+        shoppingListEntryResponse.setCount( shoppingListEntry.getCount() );
+        shoppingListEntryResponse.setSuggested( shoppingListEntry.getSuggested() );
+        shoppingListEntryResponse.setChecked( shoppingListEntry.getChecked() );
+        shoppingListEntryResponse.setType( shoppingListEntry.getType() );
+        shoppingListEntryResponse.setAddedBy( userMapper.toUserFull( shoppingListEntry.getAddedBy() ) );
+
+        return shoppingListEntryResponse;
+    }
+
+    @Override
+    public List<ShoppingListEntryResponse> toShoppingListEntryResponse(List<ShoppingListEntry> shoppingListEntries) {
+        if ( shoppingListEntries == null ) {
+            return null;
+        }
+
+        List<ShoppingListEntryResponse> list = new ArrayList<ShoppingListEntryResponse>( shoppingListEntries.size() );
+        for ( ShoppingListEntry shoppingListEntry : shoppingListEntries ) {
+            list.add( toShoppingListEntryResponse( shoppingListEntry ) );
+        }
+
+        return list;
+    }
+
+    @Override
+    public ShoppingListEntry fromShoppingListEntryRequest(ShoppingListEntryRequest shoppingListEntryRequest) {
+        if ( shoppingListEntryRequest == null ) {
+            return null;
+        }
+
+        ShoppingListEntry shoppingListEntry = new ShoppingListEntry();
+
+        shoppingListEntry.setType( shoppingListEntryRequestToItemType( shoppingListEntryRequest ) );
+        shoppingListEntry.setCount( shoppingListEntryRequest.getCount() );
+        shoppingListEntry.setSuggested( shoppingListEntryRequest.getSuggested() );
+
+        return shoppingListEntry;
+    }
+
+    @Override
+    public ShoppingListEntry fromShoppingListEntryEditRequest(ShoppingListEntryEditRequest shoppingListEntryEditRequest) {
+        if ( shoppingListEntryEditRequest == null ) {
+            return null;
+        }
+
+        ShoppingListEntry shoppingListEntry = new ShoppingListEntry();
+
+        shoppingListEntry.setId( shoppingListEntryEditRequest.getId() );
+        shoppingListEntry.setCount( shoppingListEntryEditRequest.getCount() );
+        shoppingListEntry.setSuggested( shoppingListEntryEditRequest.getSuggested() );
+        shoppingListEntry.setChecked( shoppingListEntryEditRequest.getChecked() );
+
+        return shoppingListEntry;
+    }
+
+    protected ItemType shoppingListEntryRequestToItemType(ShoppingListEntryRequest shoppingListEntryRequest) {
+        if ( shoppingListEntryRequest == null ) {
+            return null;
+        }
+
+        ItemType itemType = new ItemType();
+
+        itemType.setId( shoppingListEntryRequest.getItemTypeId() );
+
+        return itemType;
+    }
+}
diff --git a/api/target/generated-sources/annotations/no/freshify/api/model/mapper/UserMapperImpl.java b/api/target/generated-sources/annotations/no/freshify/api/model/mapper/UserMapperImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..81fe332c112e641dd1409e461815f264bcd520cd
--- /dev/null
+++ b/api/target/generated-sources/annotations/no/freshify/api/model/mapper/UserMapperImpl.java
@@ -0,0 +1,75 @@
+package no.freshify.api.model.mapper;
+
+import javax.annotation.processing.Generated;
+import no.freshify.api.model.User;
+import no.freshify.api.model.dto.CreateUser;
+import no.freshify.api.model.dto.UpdateUser;
+import no.freshify.api.model.dto.UserFull;
+import no.freshify.api.model.dto.UserId;
+
+@Generated(
+    value = "org.mapstruct.ap.MappingProcessor",
+    date = "2023-04-28T10:55:48+0200",
+    comments = "version: 1.4.2.Final, compiler: javac, environment: Java 17.0.6 (Oracle Corporation)"
+)
+public class UserMapperImpl extends UserMapper {
+
+    @Override
+    public User fromCreateUser(CreateUser user) {
+        if ( user == null ) {
+            return null;
+        }
+
+        User user1 = new User();
+
+        user1.setPassword( encodePassword( user.getPassword() ) );
+        user1.setFirstName( user.getFirstName() );
+        user1.setEmail( user.getEmail() );
+
+        return user1;
+    }
+
+    @Override
+    public UserFull toUserFull(User user) {
+        if ( user == null ) {
+            return null;
+        }
+
+        UserFull userFull = new UserFull();
+
+        userFull.setId( user.getId() );
+        userFull.setFirstName( user.getFirstName() );
+        userFull.setEmail( user.getEmail() );
+
+        return userFull;
+    }
+
+    @Override
+    public UserId toUserId(User user) {
+        if ( user == null ) {
+            return null;
+        }
+
+        UserId userId = new UserId();
+
+        userId.userId = user.getId();
+
+        return userId;
+    }
+
+    @Override
+    public User toUser(UpdateUser user) {
+        if ( user == null ) {
+            return null;
+        }
+
+        User user1 = new User();
+
+        user1.setId( user.getId() );
+        user1.setFirstName( user.getFirstName() );
+        user1.setEmail( user.getEmail() );
+        user1.setPassword( user.getPassword() );
+
+        return user1;
+    }
+}
diff --git a/api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000000000000000000000000000000000000..755ff56a3abc5f395575989e95fc22c65a290b03
--- /dev/null
+++ b/api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,67 @@
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\mapper\HouseholdMemberMapper.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\exception\ShoppingListEntryNotFoundException.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\controller\UserController.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\GlobalExceptionHandler.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\exception\HouseholdMemberAlreadyExistsException.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\dto\ItemTypeDTO.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\ShoppingListEntry.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\ItemType.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\repository\ItemRepository.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\service\ItemService.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\exception\UserNotFoundException.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\security\AuthenticationService.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\HouseholdMemberRole.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\dto\InventoryItem.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\exception\InvalidItemCountException.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\mapper\HouseholdMapper.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\security\UserAuthentication.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\controller\HouseholdMemberController.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\exception\ItemTypeNotFoundException.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\security\JwtTokenFilter.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\dto\CreateUser.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\ItemStatus.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\dto\ShoppingListEntryResponse.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\repository\UserRepository.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\security\PermissionEvaluatorImpl.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\dto\ShoppingListEntryRequest.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\exception\UserDoesNotBelongToHouseholdException.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\security\WebSecurityConfiguration.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\service\ShoppingListEntryService.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\dto\UserTypeRequest.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\service\HouseholdService.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\dto\UserFull.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\controller\ShoppingListController.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\exception\IllegalItemStatusException.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\service\UserService.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\repository\HouseholdMemberRepository.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\security\JwtUserDetailsService.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\mapper\ItemMapper.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\repository\ShoppingListEntryRepository.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\exception\IllegalItemParameterException.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\dto\LoginUser.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\service\ItemTypeService.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\exception\ItemNotFoundException.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\dto\UpdateUser.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\Household.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\exception\InvalidHouseholdMemberRoleException.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\exception\ItemDoesNotBelongToHouseholdException.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\FreshifyApiApplication.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\HouseholdMemberKey.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\dto\HouseholdMemberDTO.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\User.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\mapper\ShoppingListEntryMapper.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\Item.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\repository\HouseholdRepository.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\service\HouseholdMemberService.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\controller\HouseholdController.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\security\UserDetailsImpl.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\HouseholdMember.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\repository\ItemTypeRepository.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\controller\ItemTypeController.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\dto\ShoppingListEntryEditRequest.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\controller\InventoryController.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\exception\HouseholdNotFoundException.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\exception\ShoppingListEntryAlreadyExistsException.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\security\CookieFactory.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\dto\HouseholdDTO.java
+C:\Users\matsl\SmartMat\smartmat-backend\api\src\main\java\no\freshify\api\model\mapper\UserMapper.java
diff --git a/api/target/test-classes/application-test.properties b/api/target/test-classes/application-test.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b27d78a573be58998a99799d384ccc66bc7de410
--- /dev/null
+++ b/api/target/test-classes/application-test.properties
@@ -0,0 +1,8 @@
+spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
+spring.datasource.driverClassName=org.h2.Driver
+spring.datasource.username=sa
+spring.datasource.password=
+spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
+spring.jpa.hibernate.ddl-auto=create-drop
+
+jwt.secret=abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz
\ No newline at end of file
diff --git a/api/target/test-classes/no/freshify/api/FreshifyAPIApplicationTests.class b/api/target/test-classes/no/freshify/api/FreshifyAPIApplicationTests.class
new file mode 100644
index 0000000000000000000000000000000000000000..ff7da82404a049bc5e08874e4b33da49e5009aa5
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/FreshifyAPIApplicationTests.class differ
diff --git a/api/target/test-classes/no/freshify/api/controller/HouseholdControllerTest.class b/api/target/test-classes/no/freshify/api/controller/HouseholdControllerTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..c8b6fd6d0d8d1ee1e7452def3f630b435654c90b
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/controller/HouseholdControllerTest.class differ
diff --git a/api/target/test-classes/no/freshify/api/controller/HouseholdMemberControllerTest.class b/api/target/test-classes/no/freshify/api/controller/HouseholdMemberControllerTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..44c226b387b29e76b7394483a566ee98af11388d
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/controller/HouseholdMemberControllerTest.class differ
diff --git a/api/target/test-classes/no/freshify/api/controller/InventoryControllerTest.class b/api/target/test-classes/no/freshify/api/controller/InventoryControllerTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..dab2eb22727a8ed72e7ecabbf31f8bcb985c9347
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/controller/InventoryControllerTest.class differ
diff --git a/api/target/test-classes/no/freshify/api/controller/ItemTypeControllerTest.class b/api/target/test-classes/no/freshify/api/controller/ItemTypeControllerTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..0b0e6171ed85786e96679b355ab31cdd991c8960
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/controller/ItemTypeControllerTest.class differ
diff --git a/api/target/test-classes/no/freshify/api/controller/ShoppingListControllerTest.class b/api/target/test-classes/no/freshify/api/controller/ShoppingListControllerTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..ef8229b855334901623acd7e829b730a5c88962e
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/controller/ShoppingListControllerTest.class differ
diff --git a/api/target/test-classes/no/freshify/api/controller/UserControllerTest.class b/api/target/test-classes/no/freshify/api/controller/UserControllerTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..5c64597077dd4bb3f277635c18062d5c429e39b6
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/controller/UserControllerTest.class differ
diff --git a/api/target/test-classes/no/freshify/api/security/TestAuthenticationService.class b/api/target/test-classes/no/freshify/api/security/TestAuthenticationService.class
new file mode 100644
index 0000000000000000000000000000000000000000..6af0ee0647cb483bdd99752f74279fe1153b7f50
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/security/TestAuthenticationService.class differ
diff --git a/api/target/test-classes/no/freshify/api/security/TestCookieFactory.class b/api/target/test-classes/no/freshify/api/security/TestCookieFactory.class
new file mode 100644
index 0000000000000000000000000000000000000000..43c03095113427a23d6bf99088660aec3abac8fb
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/security/TestCookieFactory.class differ
diff --git a/api/target/test-classes/no/freshify/api/security/TestPermissionEvaluator.class b/api/target/test-classes/no/freshify/api/security/TestPermissionEvaluator.class
new file mode 100644
index 0000000000000000000000000000000000000000..1d8300e7613e46acada0cc524e52aa66175478fe
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/security/TestPermissionEvaluator.class differ
diff --git a/api/target/test-classes/no/freshify/api/service/HouseholdMemberServiceTest.class b/api/target/test-classes/no/freshify/api/service/HouseholdMemberServiceTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..afae0c8b06694eb5c2ca9eeb8692dc4753937061
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/service/HouseholdMemberServiceTest.class differ
diff --git a/api/target/test-classes/no/freshify/api/service/HouseholdServiceTest.class b/api/target/test-classes/no/freshify/api/service/HouseholdServiceTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..1b4a09b42abb644de9bd26fdbea81197c68d1024
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/service/HouseholdServiceTest.class differ
diff --git a/api/target/test-classes/no/freshify/api/service/ItemServiceTest.class b/api/target/test-classes/no/freshify/api/service/ItemServiceTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..c126661d868e8f663f7d407529cfefb0d5904542
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/service/ItemServiceTest.class differ
diff --git a/api/target/test-classes/no/freshify/api/service/ItemTypeServiceTest.class b/api/target/test-classes/no/freshify/api/service/ItemTypeServiceTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..8157f03d9cd91caaaa2cb6c9c14b1422d4b44986
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/service/ItemTypeServiceTest.class differ
diff --git a/api/target/test-classes/no/freshify/api/service/ShoppingListEntryServiceTest.class b/api/target/test-classes/no/freshify/api/service/ShoppingListEntryServiceTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..fd50609a1f2ee4acdf27b57bb1c8a9be9274c3be
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/service/ShoppingListEntryServiceTest.class differ
diff --git a/api/target/test-classes/no/freshify/api/service/UserServiceTest.class b/api/target/test-classes/no/freshify/api/service/UserServiceTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..846b67ffbfc553b4fb1ad1d919dec802a9a5727c
Binary files /dev/null and b/api/target/test-classes/no/freshify/api/service/UserServiceTest.class differ
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 0f58217f960e380d747ef2ddb24ad1e7e5c3b610..6ec84a0c84f19f5eb09237edbffde4e3b9a5b352 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -7,12 +7,12 @@ info:
     MySQL database. The API is documented using Swagger. The API is hosted using
     Apache.
     Some useful links:
-    - [The GitLab repository](https://gitlab.stud.idi.ntnu.no/idatt2106-v23-10/smartmat-backend) 
+    - [The GitLab repository](https://gitlab.stud.idi.ntnu.no/idatt2106-v23-10/smartmat-backend)
   contact:
     email: vkbugge@hotmail.com
   license:
     name: MIT License
-    url: 'https://opensource.org/licenses/MIT'
+    url: "https://opensource.org/licenses/MIT"
   version: 1.0.0
 servers:
   - url: http://localhost:8080
@@ -41,7 +41,7 @@ paths:
           schema:
             type: string
       responses:
-        '200':
+        "200":
           description: successful operation
           content:
             application/json:
@@ -51,9 +51,9 @@ paths:
                   userId:
                     type: integer
                     format: int64
-        '400':
+        "400":
           description: No email provided
-        '404':
+        "404":
           description: User not found
     post:
       tags:
@@ -66,15 +66,15 @@ paths:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/CreateUser'
+              $ref: "#/components/schemas/CreateUser"
       responses:
-        '201':
+        "201":
           description: successful operation
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/UserFull'
-        '409':
+                $ref: "#/components/schemas/UserFull"
+        "409":
           description: User already exists
     put:
       tags:
@@ -87,15 +87,15 @@ paths:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/UpdateUser'
+              $ref: "#/components/schemas/UpdateUser"
       responses:
-        '200':
+        "200":
           description: successful operation
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/UserFull'
-        '404':
+                $ref: "#/components/schemas/UserFull"
+        "404":
           description: User not found
   /user/loggedin:
     get:
@@ -105,13 +105,13 @@ paths:
       description: Returns the details of the logged in user, the details are extracted from the jwt token cookie.
       operationId: getUserById
       responses:
-        '200':
+        "200":
           description: Returns the details of the logged in user
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/UserFull'
-        '404':
+                $ref: "#/components/schemas/UserFull"
+        "404":
           description: User not found
   /user/{id}:
     get:
@@ -129,13 +129,13 @@ paths:
             type: integer
             format: int64
       responses:
-        '200':
+        "200":
           description: successful operation
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/UserFull'
-        '404':
+                $ref: "#/components/schemas/UserFull"
+        "404":
           description: User not found
     delete:
       tags:
@@ -152,11 +152,11 @@ paths:
             type: integer
             format: int64
       responses:
-        '204':
+        "204":
           description: successful operation
-        '401':
+        "401":
           description: Access denied
-        '404':
+        "404":
           description: User not found
   /user/{id}/households:
     get:
@@ -175,18 +175,18 @@ paths:
             type: integer
             format: int64
       responses:
-          '200':
-            description: successful operation
-            content:
-              application/json:
-                schema:
-                  type: array
-                  items:
-                    $ref: '#/components/schemas/Household'
-          '401':
-            description: Access denied
-          '404':
-            description: User not found
+        "200":
+          description: successful operation
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: "#/components/schemas/Household"
+        "401":
+          description: Access denied
+        "404":
+          description: User not found
   /user/login:
     post:
       tags:
@@ -199,15 +199,15 @@ paths:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/LoginUser'
+              $ref: "#/components/schemas/LoginUser"
       responses:
-        '200':
+        "200":
           description: successful operation
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/UserFull'
-        '401':
+                $ref: "#/components/schemas/UserFull"
+        "401":
           description: User could not be logged in
   /user/logout:
     post:
@@ -217,9 +217,9 @@ paths:
       description: Logs out a user
       operationId: logoutUser
       responses:
-        '200':
+        "200":
           description: successful operation
-        '401':
+        "401":
           description: User could not be logged out
   /household:
     post:
@@ -233,14 +233,14 @@ paths:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/CreateHousehold'
+              $ref: "#/components/schemas/CreateHousehold"
       responses:
-        '201':
+        "201":
           description: successful operation
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/Household'
+                $ref: "#/components/schemas/Household"
   /household/{id}/users:
     get:
       tags:
@@ -257,7 +257,7 @@ paths:
             type: integer
             format: int64
       responses:
-        '200':
+        "200":
           description: successful operation
           content:
             application/json:
@@ -267,15 +267,15 @@ paths:
                   type: object
                   properties:
                     id:
-                      $ref: '#/components/schemas/HouseholdMemberKey'
+                      $ref: "#/components/schemas/HouseholdMemberKey"
                     user:
-                      $ref: '#/components/schemas/UserFull'
+                      $ref: "#/components/schemas/UserFull"
                     userType:
-                      $ref: '#/components/schemas/HouseholdUserType'
-        '401':
+                      $ref: "#/components/schemas/HouseholdUserType"
+        "401":
           description: Access denied
-        '404':
-            description: Household not found
+        "404":
+          description: Household not found
     put:
       tags:
         - household
@@ -297,18 +297,18 @@ paths:
             schema:
               $ref: "#/components/schemas/UpdateHouseholdUserType"
       responses:
-        '200':
+        "200":
           description: The updated household member
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/HouseholdMember'
-        '400':
+                $ref: "#/components/schemas/HouseholdMember"
+        "400":
           description: Illegal household member role/User does not belong to household
-        '401':
+        "401":
           description: Access denied
-        '404':
-            description: Household not found/user not found
+        "404":
+          description: Household not found/user not found
     post:
       tags:
         - household
@@ -334,14 +334,14 @@ paths:
                   type: integer
                   format: int64
       responses:
-        '201':
+        "201":
           description: successful operation
-        '409':
+        "409":
           description: User already exists in the household
-        '401':
+        "401":
           description: Access denied
-        '404':
-            description: Household not found
+        "404":
+          description: Household not found
   /household/{id}/users/{userId}:
     delete:
       tags:
@@ -365,12 +365,55 @@ paths:
             type: integer
             format: int64
       responses:
-        '204':
+        "204":
           description: successful operation
-        '404':
+        "404":
           description: User not found/Household not found/User does not belong to household
-        '401':
+        "401":
           description: Access denied
+  /household/{id}/waste:
+    get:
+      tags:
+        - household
+      summary: Returns a list of household waste
+      description: Returns a list of household waste sorted by either number of items wasted or percentage of items wasted. The list is sorted in descending order.
+      parameters:
+        - name: id
+          in: path
+          description: ID of household to get waste from
+          required: true
+          schema:
+            type: integer
+            format: int64
+        - name: sort_by
+          in: query
+          description: Sort by either number of items wasted or percentage of items wasted
+          required: true
+          schema:
+            $ref: "#/components/schemas/ItemSortMethod"
+        - name: limit
+          in: query
+          description: The number of items to return (maximum 50)
+          schema:
+            type: integer
+            maximum: 50
+        - name: start_date
+          in: query
+          description: Start date for the time interval (YYYY-MM-DD)
+          required: false
+          schema:
+            type: string
+        - name: end_date
+          in: query
+          description: End date for the time interval (YYYY-MM-DD)
+          required: false
+          schema:
+            type: string  
+      responses:
+        "200":
+          description: successful operation
+        "404":
+          description: Household not found
   /household/{id}:
     delete:
       tags:
@@ -387,11 +430,11 @@ paths:
             type: integer
             format: int64
       responses:
-        '204':
+        "204":
           description: successful operation
-        '404':
+        "404":
           description: Household not found
-        '401':
+        "401":
           description: Access denied
     get:
       tags:
@@ -408,17 +451,17 @@ paths:
             type: integer
             format: int64
       responses:
-        '200':
+        "200":
           description: successful operation
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/Household'
-        '404':
+                $ref: "#/components/schemas/Household"
+        "404":
           description: Household not found
     put:
       tags:
-          - household
+        - household
       summary: Update household
       description: Updates the household's attributes. Can only be done by a superuser
       operationId: updateHousehold
@@ -435,18 +478,18 @@ paths:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/Household'
+              $ref: "#/components/schemas/Household"
       responses:
-          '200':
-            description: successful operation
-          '404':
-            description: Household not found
-          '401':
-            description: Access denied
+        "200":
+          description: successful operation
+        "404":
+          description: Household not found
+        "401":
+          description: Access denied
   /household/{id}/shoppinglist:
     get:
       tags:
-       - shopping list
+        - shopping list
       summary: Get the shopping list of a household
       description: Gets a shopping list with item id from shopping list
       operationId: getShoppingList
@@ -459,19 +502,19 @@ paths:
             type: integer
             format: int64
       responses:
-        '200':
+        "200":
           description: household ShoppingList items
           content:
             application/json:
               schema:
                 type: array
                 items:
-                  $ref: '#/components/schemas/ShoppingListEntry'
-        '401':
+                  $ref: "#/components/schemas/ShoppingListEntry"
+        "401":
           description: Unauthorized
-        '404':
+        "404":
           description: Household not found
-    post: 
+    post:
       tags:
         - shopping list
       summary: Add item to shopping list
@@ -490,19 +533,19 @@ paths:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/CreateShoppingListEntry'
+              $ref: "#/components/schemas/CreateShoppingListEntry"
       responses:
-        '201':
+        "201":
           description: Successful operation
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ShoppingListEntry'
-        '401':
+                $ref: "#/components/schemas/ShoppingListEntry"
+        "401":
           description: Unauthorized response
-        '409':
+        "409":
           description: Item already exists in shopping list
-        '404':
+        "404":
           description: Item type or household does not exist
     put:
       tags:
@@ -522,16 +565,16 @@ paths:
         description: ItemType and count to change in shopping list
         content:
           application/json:
-           schema:
-            $ref: '#/components/schemas/UpdateShoppingListEntry'
+            schema:
+              $ref: "#/components/schemas/UpdateShoppingListEntry"
       responses:
-        '204':
+        "204":
           description: Successful operation
-        '400':
+        "400":
           description: Invalid operation. More items are removed than in shopping list.
-        '401':
+        "401":
           description: Unauthorized response, user is not validated or does not have access
-        '404':
+        "404":
           description: Shopping list entry not found
   /household/{id}/shoppinglist/{listEntryId}:
     delete:
@@ -556,11 +599,11 @@ paths:
             type: integer
             format: int64
       responses:
-        '204':
+        "204":
           description: Successful operation
-        '404':
+        "404":
           description: Shopping list or shopping list entry not found.
-        '401':
+        "401":
           description: Unauthorized response, user is not validated or does not have access
   /household/{id}/shoppinglist/buy:
     post:
@@ -578,13 +621,13 @@ paths:
             type: integer
             format: int64
       responses:
-        '200':
+        "200":
           description: Successful operation
-        '400':
+        "400":
           description: Invalid operation. More items are removed than in shopping list.
-        '401':
+        "401":
           description: Unauthorized response, user is not validated or does not have access
-        '404':
+        "404":
           description: Item not found in shopping list
   /household/{id}/inventory:
     post:
@@ -617,19 +660,19 @@ paths:
                     type: integer
                     format: int64
       responses:
-        '201':
+        "201":
           description: Returns a list of the newly added items.
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/InventoryItems'
-        '401':
+                $ref: "#/components/schemas/InventoryItems"
+        "401":
           description: Unauthorized response, user is not validated or does not have access
-        '404':
+        "404":
           description: Household not found/User not found/Item type not found
     get:
       tags:
-       - inventory
+        - inventory
       summary: Gets all items from inventory
       description: Gets all items of a specific inventory
       operationId: getInventoryItems
@@ -642,17 +685,17 @@ paths:
             type: integer
             format: int64
       responses:
-        '200':
+        "200":
           description: item found
           content:
             application/json:
               schema:
                 type: array
                 items:
-                  $ref: '#/components/schemas/Item'
-        '401':
+                  $ref: "#/components/schemas/Item"
+        "401":
           description: Unauthorized
-        '404':
+        "404":
           description: Household not found
     put:
       tags:
@@ -675,13 +718,13 @@ paths:
             schema:
               $ref: "#/components/schemas/UpdateItem"
       responses:
-        '200':
+        "200":
           description: Successful operation
-        '400':
+        "400":
           description: The given item status is not a valid status for item/item does not belong to household
-        '401':
+        "401":
           description: Unauthorized response, user is not validated or does not have access
-        '404':
+        "404":
           description: Item not found/household not found
   /household/{id}/inventory/{itemId}:
     delete:
@@ -693,7 +736,7 @@ paths:
       parameters:
         - name: id
           in: path
-          description: ID of household's inventory to delete the item from 
+          description: ID of household's inventory to delete the item from
           required: true
           schema:
             type: integer
@@ -706,11 +749,11 @@ paths:
             type: integer
             format: int64
       responses:
-        '200':
+        "200":
           description: Successful operation
-        '401':
+        "401":
           description: Unauthorized response, user is not validated or does not have access
-        '404':
+        "404":
           description: Item not found/household not found
   /household/{id}/inventory/suggest:
     post:
@@ -743,15 +786,15 @@ paths:
                     type: integer
                     format: int64
       responses:
-        '201':
+        "201":
           description: Returns a list of the newly added suggestions.
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/InventoryItems'
-        '401':
+                $ref: "#/components/schemas/InventoryItems"
+        "401":
           description: Unauthorized response, user is not validated or does not have access
-        '404':
+        "404":
           description: Household not found/User not found/Item type not found
   /itemtype:
     get:
@@ -774,7 +817,7 @@ paths:
               schema:
                 type: array
                 items:
-                  $ref: '#/components/schemas/ItemType'
+                  $ref: "#/components/schemas/ItemType"
         404:
           description: No item types found
 components:
@@ -882,19 +925,31 @@ components:
           format: int32
           example: 1
         type:
-          $ref: '#/components/schemas/ItemType'
+          $ref: "#/components/schemas/ItemType"
         suggested:
           type: boolean
         checked:
           example: false
           type: boolean
         addedBy:
-          $ref: '#/components/schemas/UserFull'
+          $ref: "#/components/schemas/UserFull"
     ItemState:
       type: string
       enum:
         - INVENTORY
         - USED
+    ItemSortMethod:
+      type: string
+      enum:
+        - COUNT
+        - PERCENTAGE
+    TimePeriod:
+      type: string
+      enum:
+        - WEEK
+        - MONTH
+        - YEAR
+        - ALL 
     UpdateItem:
       type: object
       properties:
@@ -916,7 +971,7 @@ components:
           type: integer
           example: 123
         state:
-          $ref: '#/components/schemas/ItemState' 
+          $ref: "#/components/schemas/ItemState"
         remaining:
           type: number
           format: double
@@ -928,36 +983,36 @@ components:
         suggested:
           type: boolean
         type:
-          $ref: '#/components/schemas/ItemType'
+          $ref: "#/components/schemas/ItemType"
         addedBy:
-          $ref: '#/components/schemas/UserFull'
+          $ref: "#/components/schemas/UserFull"
     InventoryItems:
       type: array
       items:
-          properties:
-            id:
-              type: integer
-              example: 123
-            state:
-              $ref: '#/components/schemas/ItemState' 
-            remaining:
-              type: number
-              format: double
-              example: 1
-            lastChanged:
-              type: string
-              format: date
-              example: "2020-01-01"
-            addedDate:
-              type: string
-              format: date
-              example: "2020-01-01"
-            suggested:
-              type: boolean
-            type:
-              $ref: '#/components/schemas/ItemType'
-            addedBy:
-              $ref: '#/components/schemas/UserFull'
+        properties:
+          id:
+            type: integer
+            example: 123
+          state:
+            $ref: "#/components/schemas/ItemState"
+          remaining:
+            type: number
+            format: double
+            example: 1
+          lastChanged:
+            type: string
+            format: date
+            example: "2020-01-01"
+          addedDate:
+            type: string
+            format: date
+            example: "2020-01-01"
+          suggested:
+            type: boolean
+          type:
+            $ref: "#/components/schemas/ItemType"
+          addedBy:
+            $ref: "#/components/schemas/UserFull"
     HouseholdUserType:
       type: string
       enum:
@@ -970,7 +1025,7 @@ components:
           type: integer
           example: 123
         type:
-          $ref: '#/components/schemas/HouseholdUserType'
+          $ref: "#/components/schemas/HouseholdUserType"
     HouseholdMemberKey:
       type: object
       properties:
@@ -984,11 +1039,11 @@ components:
       type: object
       properties:
         id:
-          $ref: '#/components/schemas/HouseholdMemberKey'
+          $ref: "#/components/schemas/HouseholdMemberKey"
         user:
-          $ref: '#/components/schemas/UserFull'
+          $ref: "#/components/schemas/UserFull"
         type:
-          $ref: '#/components/schemas/HouseholdUserType'
+          $ref: "#/components/schemas/HouseholdUserType"
     Household:
       type: object
       properties: