Repository: SebRut/pygrocy (language: python)

Issue:
Failed TC with Grocy 3.3.0
I have changed the test configuration to the demo instance of Grocy by modifying the test_const.py file and run the pytests against it.
However, the result of the test was not really successful:
```
test/test_battery.py .F.                                                                                                                                                                 [  3%]
test/test_chores.py FF...                                                                                                                                                                [  8%]
test/test_generic.py F......                                                                                                                                                             [ 15%]
test/test_grocy.py ..................................                                                                                                                                    [ 50%]
test/test_grocy_api_client.py ....                                                                                                                                                       [ 54%]
test/test_meal_plan.py FF.F                                                                                                                                                              [ 58%]
test/test_meal_plan_sections.py F..                                                                                                                                                      [ 61%]
test/test_misc.py .                                                                                                                                                                      [ 62%]
test/test_product.py FFF..F.                                                                                                                                                             [ 70%]
test/test_product_groups.py F                                                                                                                                                            [ 71%]
test/test_shoppinglist.py F......                                                                                                                                                        [ 78%]
test/test_stock.py F.F..                                                                                                                                                                 [ 83%]
test/test_system.py F                                                                                                                                                                    [ 84%]
test/test_tasks.py F...                                                                                                                                                                  [ 88%]
test/test_users.py .F                                                                                                                                                                    [ 90%]
test/test_utils.py .........                                                                                                                                                             [100%]

=========================================================================================== FAILURES ===========================================================================================
```
Maybe the tests should be updated to deal with the most recent demo instance of Grocy? This might also uncover missing feature implementations.


Discussion / hints:
@SebRut what would you recommend on how to proceed?
In general, one would delete all files in `tests/casettes` and re-run the tests to re-record responses. After that, all failing tests have to checked (and changed if needed) for actual errors or simply assertions not matching responses anymore.

Fix patch:
diff --git a/pygrocy/grocy_api_client.py b/pygrocy/grocy_api_client.py
index 4059ffa..a3c141b 100644
--- a/pygrocy/grocy_api_client.py
+++ b/pygrocy/grocy_api_client.py
@@ -184,7 +184,7 @@ class TaskResponse(BaseModel):
     id: int
     name: str
     description: Optional[str] = None
-    due_date: date
+    due_date: date = None
     done: int
     done_timestamp: Optional[datetime] = None
     category_id: Optional[int] = None


Test patch:
diff --git a/test/cassettes/test_battery/TestBattery.test_charge_battery.yaml b/test/cassettes/test_battery/TestBattery.test_charge_battery.yaml
index 26e4f86..910e15f 100644
--- a/test/cassettes/test_battery/TestBattery.test_charge_battery.yaml
+++ b/test/cassettes/test_battery/TestBattery.test_charge_battery.yaml
@@ -1,6 +1,6 @@
 interactions:
 - request:
-    body: '{"tracked_time": "2021-08-21T19:42:48.452104+00:00"}'
+    body: '{"tracked_time": "2022-04-22T08:40:12.632543+00:00"}'
     headers:
       Accept-Encoding:
       - gzip, deflate
@@ -11,17 +11,15 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
     uri: https://localhost/api/batteries/1/charge
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA3WMQQqAIBQFrxJvraDWoryMmLqIUsN+RER3L6ptu/dgZg4MHlrWDL0lCmU3z2eg
-        Yt0YvKEhBmgooSQXLVeykp1ulG5aMJS8GVeCpQ9cyMb5l16Tz+mOCYZ3PvHPSes0nRfZ1FG0jgAA
-        AA==
+      string: '{"id":"11","battery_id":"1","tracked_time":"2022-04-22 09:40:13","undone":"0","undone_timestamp":null,"row_created_timestamp":"2022-04-22
+        08:40:13"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -31,18 +29,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:48 GMT
+      - Fri, 22 Apr 2022 08:40:13 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_battery/TestBattery.test_get_batteries_valid.yaml b/test/cassettes/test_battery/TestBattery.test_get_batteries_valid.yaml
index 522f6a4..2ce1f2e 100644
--- a/test/cassettes/test_battery/TestBattery.test_get_batteries_valid.yaml
+++ b/test/cassettes/test_battery/TestBattery.test_get_batteries_valid.yaml
@@ -7,18 +7,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/batteries
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA6XRUQuCMBAH8K8i9+xgd3Pp9lUixtJRkvWgC4rou7dKk4FpEOzlD3f3427rG9QV
-        aExha7137dX0sbGdN7615cFVxtdHBxqIEzIuGfKE55pQyxxSOLmLN64LNdaH2nJv2537tCilGBIT
-        mJDQUoUH9/SNUoyG+AXlzwkkE1Q6Qy2Kf1ARoyHOoWHTn9HXcYjxYmwZNs1iNMRZVI0Tls7bo5iP
-        LQO6itEQJ9DTuWmWjKkv3DwAZYKjyzkCAAA=
+      string: '[{"id":"1","battery_id":"1","last_tracked_time":"2021-10-24 23:59:59","next_estimated_charge_time":"2022-04-22
+        23:59:59"},{"id":"2","battery_id":"2","last_tracked_time":"2022-03-03 09:38:06","next_estimated_charge_time":"2999-12-31
+        23:59:59"},{"id":"3","battery_id":"3","last_tracked_time":"2022-02-16 09:38:06","next_estimated_charge_time":"2022-04-17
+        09:38:06"},{"id":"4","battery_id":"4","last_tracked_time":"2022-02-25 09:38:06","next_estimated_charge_time":"2022-04-26
+        09:38:06"}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -28,18 +28,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:48 GMT
+      - Fri, 22 Apr 2022 08:40:13 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_battery/TestBattery.test_get_battery_details_valid.yaml b/test/cassettes/test_battery/TestBattery.test_get_battery_details_valid.yaml
index 2524b54..e7117b3 100644
--- a/test/cassettes/test_battery/TestBattery.test_get_battery_details_valid.yaml
+++ b/test/cassettes/test_battery/TestBattery.test_get_battery_details_valid.yaml
@@ -7,19 +7,17 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/batteries/1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA0WPQWrDMBBFryJmbYEl1QnSGbos7VJM5aEV2FKQJklNyN07blMKs3v89//c4B2Z
-        qW0QbpBnCGaAgitBgGdSha7qjw8wU08tnzjXIvgNW8PCm6Iyd2VH62CAc6c55h2/vKpGa2VSqRZu
-        dRGaPrF9kHApvOASZ9w6hHGAVq8xNUKWNOeVOuN6EolYjR6tNk4ZH55McAfRYOJ8kYXmPsCCneOv
-        V8Y/ApM2oxqPwZowHf9705YW6jHVc2EIB3mUvjhKWV5/mh/z9gG7ynuvjdXOKOvC5OXg/g0id9sR
-        LwEAAA==
+      string: '{"battery":{"id":"1","name":"Battery1","description":"Warranty ends
+        2023","used_in":"TV remote control","charge_interval_days":"180","row_created_timestamp":"2022-04-22
+        08:37:58","active":"1"},"last_charged":"2021-10-24 23:59:59","charge_cycles_count":4,"next_estimated_charge_time":"2022-04-22
+        23:59:59"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -29,18 +27,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:48 GMT
+      - Fri, 22 Apr 2022 08:40:13 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_chores/TestChores.test_execute_chore_invalid.yaml b/test/cassettes/test_chores/TestChores.test_execute_chore_invalid.yaml
index 8811b32..22382a6 100644
--- a/test/cassettes/test_chores/TestChores.test_execute_chore_invalid.yaml
+++ b/test/cassettes/test_chores/TestChores.test_execute_chore_invalid.yaml
@@ -1,6 +1,6 @@
 interactions:
 - request:
-    body: '{"tracked_time": "2021-08-23T08:17:14.341685+00:00"}'
+    body: '{"tracked_time": "2022-04-22T08:40:12.632403+00:00"}'
     headers:
       Accept-Encoding:
       - gzip, deflate
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -31,13 +31,13 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Mon, 23 Aug 2021 08:17:14 GMT
+      - Fri, 22 Apr 2022 08:40:15 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 400
       message: Bad Request
diff --git a/test/cassettes/test_chores/TestChores.test_execute_chore_valid.yaml b/test/cassettes/test_chores/TestChores.test_execute_chore_valid.yaml
index b19bf11..5a78e1d 100644
--- a/test/cassettes/test_chores/TestChores.test_execute_chore_valid.yaml
+++ b/test/cassettes/test_chores/TestChores.test_execute_chore_valid.yaml
@@ -1,6 +1,6 @@
 interactions:
 - request:
-    body: '{"tracked_time": "2021-08-23T08:17:14.341685+00:00"}'
+    body: '{"tracked_time": "2022-04-22T08:40:12.632403+00:00"}'
     headers:
       Accept-Encoding:
       - gzip, deflate
@@ -11,17 +11,15 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
     uri: https://localhost/api/chores/1/execute
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA3WNywrCMBBFf0XuOoUkCpb5mSEmAxbbRKYJUsR/lz5curtncc59Y0gg5w3ivajw
-        RgZVQ3xI4jpMAoK33nW27/z5ZHtyV3IXGKSShW8Lt1n0J2p5cVQJ9ZDnGqbn30LLawNkDfa5HR5O
-        buP4+QLriBPloAAAAA==
+      string: '{"id":"153","chore_id":"1","tracked_time":"2022-04-22 00:00:00","done_by_user_id":"1","row_created_timestamp":"2022-04-22
+        08:40:15","undone":"0","undone_timestamp":null,"skipped":"0"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -31,18 +29,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Mon, 23 Aug 2021 08:17:14 GMT
+      - Fri, 22 Apr 2022 08:40:15 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_chores/TestChores.test_execute_chore_valid_with_data.yaml b/test/cassettes/test_chores/TestChores.test_execute_chore_valid_with_data.yaml
index 5012525..2e9f86a 100644
--- a/test/cassettes/test_chores/TestChores.test_execute_chore_valid_with_data.yaml
+++ b/test/cassettes/test_chores/TestChores.test_execute_chore_valid_with_data.yaml
@@ -1,27 +1,25 @@
 interactions:
 - request:
-    body: '{"tracked_time": "2020-12-01T15:00:00+00:00", "done_by": 1}'
+    body: '{"tracked_time": "2022-04-22T08:40:15.141944+00:00", "done_by": 1}'
     headers:
       Accept-Encoding:
       - gzip, deflate
       Connection:
       - keep-alive
       Content-Length:
-      - '59'
+      - '66'
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
     uri: https://localhost/api/chores/1/execute
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA3WNywrCMBBFf0XuOoU0QSzzM0NMBiy2iUwTRMR/lz5curtncc59Y0yg3hvEW1Hh
-        jQyqhniXxHWcBQRnXd/ZoXP+ZAdyns4XGKSSha8vbovoT9Ty5KgS6iEvNcyPv4WW1wbIGuxzOzyc
-        3Kbp8wVSZJlQoAAAAA==
+      string: '{"id":"154","chore_id":"1","tracked_time":"2022-04-22 00:00:00","done_by_user_id":"1","row_created_timestamp":"2022-04-22
+        08:40:15","undone":"0","undone_timestamp":null,"skipped":"0"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -31,18 +29,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Mon, 23 Aug 2021 08:23:57 GMT
+      - Fri, 22 Apr 2022 08:40:15 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_chores/TestChores.test_get_chore_details.yaml b/test/cassettes/test_chores/TestChores.test_get_chore_details.yaml
index cc04d91..54e59b6 100644
--- a/test/cassettes/test_chores/TestChores.test_get_chore_details.yaml
+++ b/test/cassettes/test_chores/TestChores.test_get_chore_details.yaml
@@ -7,22 +7,19 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/chores/3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA61SuW7DMAz9FYOzAsROennu2LWzoEqMI1SHIclJjCD/XspH4gJN0aEjj/fI98gz
-        yL0PCPUZtIJ6w8AJSyG8iaMrrD+iKrQr0h6LRgSFDhgojDLoNmnvoHadMQxaDNornvo2Y1VPJFqu
-        AjadEYEgU12JPkJdlQyCP3IZUCQklLYYk7AtQat1Va7W1arcFOVLvS3rzeMNLr3b6WaemYKQn1wR
-        BffO9FCvM60x/oBhCESMunEWXZoXC8Ipb4lwUZpJoWQV27AtVR2eEscTyi5r5GNzXtTzLmLg2amK
-        ASFjZ5G3watOJtriBhoWmAu5f/JpahXWdy5ds6N72iUMB2GgJoOETPpAZpYXBkZEkpDlIjFNHpWr
-        6mn26JmWnupcjsxEMcCUd8g/yJ3xwJTOEqYjv6L1xTvFhN/pQFPGwrjsgF8m/n607KLSsTWinyhh
-        OavVMnUB+U4bXIwkqaP1kV5ieI3bEfKTXLXTf3zTfu9gWeqsnA72k/Ki+m/tD79oH6bdU3/5Ag6u
-        hmKNAwAA
+      string: '{"chore":{"id":"3","name":"Take out the trash","description":null,"period_type":"hourly","period_days":null,"row_created_timestamp":"2022-04-22
+        08:37:58","period_config":null,"track_date_only":"1","rollover":"0","assignment_type":"random","assignment_config":"1,2,3,4","next_execution_assigned_to_user_id":"1","consume_product_on_execution":"0","product_id":null,"product_amount":null,"period_interval":"48","active":"1","start_date":"2021-01-01","rescheduled_date":null,"rescheduled_next_execution_assigned_to_user_id":null},"last_tracked":"2022-04-20
+        00:00:00","tracked_count":19,"last_done_by":{"id":"1","username":"Demo User","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:55","display_name":"Demo User","picture_file_name":null},"next_estimated_execution_time":"2022-04-22
+        23:59:59","next_execution_assigned_user":{"id":"1","username":"Demo User","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:55","display_name":"Demo User","picture_file_name":null},"average_execution_frequency_hours":"54.8571428571429"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -32,18 +29,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:49 GMT
+      - Fri, 22 Apr 2022 08:40:14 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_chores/TestChores.test_get_chores_valid.yaml b/test/cassettes/test_chores/TestChores.test_get_chores_valid.yaml
index d804760..e1c8364 100644
--- a/test/cassettes/test_chores/TestChores.test_get_chores_valid.yaml
+++ b/test/cassettes/test_chores/TestChores.test_get_chores_valid.yaml
@@ -7,23 +7,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/chores
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA72Vy27bMBBFf4Xg2gJEyUojbdtlu2vRRRAIrDg2iUikQNJ1jCD/3tGLZdrUcoy2
-        gDZjz8Nzz/Xo7okqQSu2oY00FuoXgeYd0Iq+l1zvQRBvjtA6ojTxEsg37qU1pqMb2nLna2958wCi
-        9mosytKMJWmWpLeEldWWVfktZmp49DU4zOEec+ERmoNXRoeqsiwTliU5I1leFSU+WDW2rgWW1Ea3
-        J1qlS6dQz51Tez2MN/XBgR0X0Ye2/XPmkEarIed5M6mQxSqEYFGhBY4Dxt0flG8kaLJrjbFrAuRv
-        EmCWjaVx1bUCINZJ8d91mrYP9IdwXvQDdIZ8GcTZ0J2yiHb6YlJzZB1/YM2xbiyMPAf2zvOuR9cs
-        BmBh/y02FMr1LT/NLWk8q1eNP6AFd6qFaOTzQieP6YRg/tEf+VGTDg0qFn/uuRWgz8JhSfYulnnV
-        nQucF1XXwkGDXQIH016DQ7K/jac4g2ectgZoGwMKwQzoM54ML5Xek6NUjSSS9z1oR8x0TQovidkR
-        +A72hBy1l2fJ4V0Jtrrorozk8iQtSJpW44P9ryX31rtSxMKEYEUYwRWeuvPH9ed/63IRsoRtY9P/
-        LxFuYhFCsCICuuOT0YKfHOFakK8gNLghXBHmGnf8+q7658Lc/wAM46fSfQcAAA==
+      string: '[{"id":"1","chore_id":"1","chore_name":"Change towels in the bathroom","last_tracked_time":"2022-04-22
+        00:00:00","next_estimated_execution_time":"2022-04-25 23:59:59","track_date_only":"1","next_execution_assigned_to_user_id":"4","is_rescheduled":"0","is_reassigned":"0","next_execution_assigned_user":{"id":"4","username":"Demo
+        User 4","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 4","picture_file_name":null}},{"id":"2","chore_id":"2","chore_name":"Mop
+        the kitchen floor","last_tracked_time":"2022-04-15 00:00:00","next_estimated_execution_time":"2022-04-18
+        23:59:59","track_date_only":"1","next_execution_assigned_to_user_id":"4","is_rescheduled":"0","is_reassigned":"0","next_execution_assigned_user":{"id":"4","username":"Demo
+        User 4","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 4","picture_file_name":null}},{"id":"3","chore_id":"3","chore_name":"Take
+        out the trash","last_tracked_time":"2022-04-20 00:00:00","next_estimated_execution_time":"2022-04-22
+        23:59:59","track_date_only":"1","next_execution_assigned_to_user_id":"1","is_rescheduled":"0","is_reassigned":"0","next_execution_assigned_user":{"id":"1","username":"Demo
+        User","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:55","display_name":"Demo User","picture_file_name":null}},{"id":"4","chore_id":"4","chore_name":"Vacuum
+        the living room floor","last_tracked_time":"2022-04-22 00:00:00","next_estimated_execution_time":"2022-04-23
+        23:59:59","track_date_only":"1","next_execution_assigned_to_user_id":null,"is_rescheduled":"0","is_reassigned":"0","next_execution_assigned_user":null},{"id":"5","chore_id":"5","chore_name":"Clean
+        the litter box","last_tracked_time":"2022-04-21 00:00:00","next_estimated_execution_time":"2022-04-22
+        23:59:59","track_date_only":"1","next_execution_assigned_to_user_id":"4","is_rescheduled":"0","is_reassigned":"0","next_execution_assigned_user":{"id":"4","username":"Demo
+        User 4","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 4","picture_file_name":null}},{"id":"6","chore_id":"6","chore_name":"Change
+        the bed sheets","last_tracked_time":"2022-04-01 00:00:00","next_estimated_execution_time":"2022-05-02
+        23:59:59","track_date_only":"1","next_execution_assigned_to_user_id":null,"is_rescheduled":"1","is_reassigned":"0","next_execution_assigned_user":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -33,18 +43,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:49 GMT
+      - Fri, 22 Apr 2022 08:40:13 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -56,21 +64,20 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/chores/1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA41Sy27DIBD8FYuzLRk7qWpf21/oGRHYxKg8LMBJrCj/3sWP2D1UqsQFdmdmZ5YH
-        EZ3zQNoHUZK0NCeWG7ySj47bC8gsuhvokCmbxQ6yE4+dd86QnEgIwqs+KmdJawetc9KDV06yOPaJ
-        wXA7cK1H7F0Kko+BtMeceHdjwgOPgN3KQIjc9AipyooWZVXQOqNNe6Bt/bahhbNndVm1oufim0mk
-        YM6iSFsmWq3dFfx04SGoizVg4zLQPOPu+TehhXtkcAcxJEts7kvzOTYE8CzFM1MgLgwGWO+dHERE
-        /Q03Sa+FDbK+cOMGG1eiJRZlI/gr11P8XER1xfjoMyeaBxw+GQUUf6VTvq/pvGM6S52JmbleYNJZ
-        YCfM5bXY5GJZ7icYl33hHfFn5VFlLsz+Jtn9w//XdUBCqUKv+bhQkr1Wr0QcPLCz0rCTRKtz+gE/
-        w/Qptj2k75G8N01T0KqoaVbV7bHBg1J/7SxZnUN+/gBvfkZ84QIAAA==
+      string: '{"chore":{"id":"1","name":"Change towels in the bathroom","description":null,"period_type":"hourly","period_days":null,"row_created_timestamp":"2022-04-22
+        08:37:58","period_config":null,"track_date_only":"1","rollover":"0","assignment_type":"random","assignment_config":"1,2,3,4","next_execution_assigned_to_user_id":"4","consume_product_on_execution":"0","product_id":null,"product_amount":null,"period_interval":"72","active":"1","start_date":"2021-01-01","rescheduled_date":null,"rescheduled_next_execution_assigned_to_user_id":null},"last_tracked":"2022-04-22
+        00:00:00","tracked_count":20,"last_done_by":{"id":"3","username":"Demo User
+        3","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 3","picture_file_name":null},"next_estimated_execution_time":"2022-04-25
+        23:59:59","next_execution_assigned_user":{"id":"4","username":"Demo User 4","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 4","picture_file_name":null},"average_execution_frequency_hours":"81.8181818181818"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -80,18 +87,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:49 GMT
+      - Fri, 22 Apr 2022 08:40:14 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -103,21 +108,19 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/chores/2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA9VSSW7DMAz8isGzAlhO0MXX9gs9C6pEJ0JlydCSxgjy91JeEl8K9NqjRM5wZsgr
-        qJMPCO0VjIa2YeBkT094sygd6iqdsPoySZ3QVZ31PgADjVEFMyTjHbQuW8tgwGC8FmkcCliPxGLU
-        LuAxW1kgS13LMUL7zCD4b6ECyoQEMj3GJPuBkE3d8F3d7Pi+4q/tgbf7pwdaedeZ4zoyBam+hCYK
-        4Z0doa0LrbX+jGF6yBjN0fXo0qorSKd9T4Sb0koKnDVszw5UdXhJAi+ocrEo5uYi1IscMYiSFGdA
-        yJh7FEPwOqtEKh6gScBaKP1LTEur7H126f47h2dcwnCWdiKXKpkzZclvDKyMZKHYRWK6Z1TfM3oh
-        0UtdqJmZNjnBtHcoPimdecEku1hYlvyOva8+6E34zgSaMhdmsRN++/H3pZUUtYmDleNCCdtZg1Ep
-        BxSdsbgZSVbn6COdxHQajyWUI9l45/V6H8X7bwsrVv+H89sPmEga1YkDAAA=
+      string: '{"chore":{"id":"2","name":"Mop the kitchen floor","description":null,"period_type":"weekly","period_days":null,"row_created_timestamp":"2022-04-22
+        08:37:58","period_config":"monday,thursday","track_date_only":"1","rollover":"0","assignment_type":"random","assignment_config":"1,2,3,4","next_execution_assigned_to_user_id":"4","consume_product_on_execution":"0","product_id":null,"product_amount":null,"period_interval":"1","active":"1","start_date":"2021-01-01","rescheduled_date":null,"rescheduled_next_execution_assigned_to_user_id":null},"last_tracked":"2022-04-15
+        00:00:00","tracked_count":19,"last_done_by":{"id":"1","username":"Demo User","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:55","display_name":"Demo User","picture_file_name":null},"next_estimated_execution_time":"2022-04-18
+        23:59:59","next_execution_assigned_user":{"id":"4","username":"Demo User 4","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 4","picture_file_name":null},"average_execution_frequency_hours":"192.0"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -127,18 +130,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:49 GMT
+      - Fri, 22 Apr 2022 08:40:14 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -150,22 +151,19 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/chores/3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA61SuW7DMAz9FYOzAsROennu2LWzoEqMI1SHIclJjCD/XspH4gJN0aEjj/fI98gz
-        yL0PCPUZtIJ6w8AJSyG8iaMrrD+iKrQr0h6LRgSFDhgojDLoNmnvoHadMQxaDNornvo2Y1VPJFqu
-        AjadEYEgU12JPkJdlQyCP3IZUCQklLYYk7AtQat1Va7W1arcFOVLvS3rzeMNLr3b6WaemYKQn1wR
-        BffO9FCvM60x/oBhCESMunEWXZoXC8Ipb4lwUZpJoWQV27AtVR2eEscTyi5r5GNzXtTzLmLg2amK
-        ASFjZ5G3watOJtriBhoWmAu5f/JpahXWdy5ds6N72iUMB2GgJoOETPpAZpYXBkZEkpDlIjFNHpWr
-        6mn26JmWnupcjsxEMcCUd8g/yJ3xwJTOEqYjv6L1xTvFhN/pQFPGwrjsgF8m/n607KLSsTWinyhh
-        OavVMnUB+U4bXIwkqaP1kV5ieI3bEfKTXLXTf3zTfu9gWeqsnA72k/Ki+m/tD79oH6bdU3/5Ag6u
-        hmKNAwAA
+      string: '{"chore":{"id":"3","name":"Take out the trash","description":null,"period_type":"hourly","period_days":null,"row_created_timestamp":"2022-04-22
+        08:37:58","period_config":null,"track_date_only":"1","rollover":"0","assignment_type":"random","assignment_config":"1,2,3,4","next_execution_assigned_to_user_id":"1","consume_product_on_execution":"0","product_id":null,"product_amount":null,"period_interval":"48","active":"1","start_date":"2021-01-01","rescheduled_date":null,"rescheduled_next_execution_assigned_to_user_id":null},"last_tracked":"2022-04-20
+        00:00:00","tracked_count":19,"last_done_by":{"id":"1","username":"Demo User","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:55","display_name":"Demo User","picture_file_name":null},"next_estimated_execution_time":"2022-04-22
+        23:59:59","next_execution_assigned_user":{"id":"1","username":"Demo User","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:55","display_name":"Demo User","picture_file_name":null},"average_execution_frequency_hours":"54.8571428571429"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -175,18 +173,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:49 GMT
+      - Fri, 22 Apr 2022 08:40:14 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -198,21 +194,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/chores/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA41Sy27DIBD8FcTZkew8qpZzP6E9IwrrGBUDApzEivLvXYwdu4dKlbiw7MzszHKn
-        snMBKLtTrSg7VtSKHq/0owOSOm3P5Npp2ZFOeA82EmexDOSUOuJaAhcII+mdTR2tqIIog/ZJO0uZ
-        HYypqIegneJp9Jl0ajQjts51JcZI2amiwV25DCASYLPuISbRe0Ts632zq/e75kCaN3Zs2OFlRUtn
-        W31epFIQ8psrpODOogirM60xDmecLiJGfbY92DTPU0bclH8TWrglDjeQQ3bES1+ez/EhQuA5sEKB
-        uDj0wH1wapAJ9VfcJL08rJClIno32LQQzbFomyBchKGsqaiQSV8wveZRUSMiDp+NAoo/06mf6bxi
-        OvM7l4UZKSaYchb4F+ZSVo3l7GJe9zv0jnziHfGtDqhSHoq/Cb8t/H9dRyRUOnojxpmSbrW8lmkI
-        wFttYCOJVkv6ET/D9CnWPeTv8fR+2NUnUtdsOij1186y1RLy4wexp4rX8wIAAA==
+      string: '{"chore":{"id":"4","name":"Vacuum the living room floor","description":null,"period_type":"weekly","period_days":null,"row_created_timestamp":"2022-04-22
+        08:37:58","period_config":"saturday","track_date_only":"1","rollover":"0","assignment_type":"no-assignment","assignment_config":null,"next_execution_assigned_to_user_id":null,"consume_product_on_execution":"0","product_id":null,"product_amount":null,"period_interval":"1","active":"1","start_date":"2021-01-01","rescheduled_date":null,"rescheduled_next_execution_assigned_to_user_id":null},"last_tracked":"2022-04-22
+        00:00:00","tracked_count":20,"last_done_by":{"id":"1","username":"Demo User","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:55","display_name":"Demo User","picture_file_name":null},"next_estimated_execution_time":"2022-04-23
+        23:59:59","next_execution_assigned_user":null,"average_execution_frequency_hours":"190.909090909091"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -222,18 +215,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:49 GMT
+      - Fri, 22 Apr 2022 08:40:14 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -245,21 +236,20 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/chores/5
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA41S0W7DIAz8lcjPqdS03bTleZ+wPSMGbmONAALSNqr67zMhUTNpk/aI8d35zr6B
-        6lxAaG9AGtqnGqzs+QnvHVapI3uqLh2pruqk92hjpSWZEWrQGFUgn8hZaO1gTA0eAzkt0ugzwdI4
-        V7Uc49IY3EWogDIhd1OPMcneM2S33TWb7W7T7KvmtT007f6ZlWYC5eyRTgtFClJ9Cc0UwlkeqN3W
-        EJwx7oxhesgY6WR7tGkeqMy4Kv8ktHhNAq+ohmxJlL48nxNDxCByOoWCcXHoUfjg9KAS6z9wk/Ty
-        8YAsFdm7waaFaDZGNmE4SwNtU4NUic4cX3OvwcjIw2ejyOK/pPPC6cz/QhVmpphg2lkUn5xL2SuX
-        s4t5t2/Yu+qD34w/UmCV8lH8Tfh14f/rOuTDoOiNHGdKWGt5UmkIKI5kcCXJVkv6kY9hOorHHvJ5
-        rL0flsvI3v/aWbZaQr5/A+DuqM3gAgAA
+      string: '{"chore":{"id":"5","name":"Clean the litter box","description":null,"period_type":"hourly","period_days":null,"row_created_timestamp":"2022-04-22
+        08:37:58","period_config":null,"track_date_only":"1","rollover":"0","assignment_type":"random","assignment_config":"1,2,3,4","next_execution_assigned_to_user_id":"4","consume_product_on_execution":"0","product_id":null,"product_amount":null,"period_interval":"24","active":"1","start_date":"2021-01-01","rescheduled_date":null,"rescheduled_next_execution_assigned_to_user_id":null},"last_tracked":"2022-04-21
+        00:00:00","tracked_count":19,"last_done_by":{"id":"2","username":"Demo User
+        2","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 2","picture_file_name":null},"next_estimated_execution_time":"2022-04-22
+        23:59:59","next_execution_assigned_user":{"id":"4","username":"Demo User 4","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 4","picture_file_name":null},"average_execution_frequency_hours":"27.4285714285714"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -269,18 +259,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:49 GMT
+      - Fri, 22 Apr 2022 08:40:14 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -292,21 +280,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/chores/6
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA41STW/CMAz9K1HORaKAEOt519027RhliaERqRMlKQUh/vucpoVeJu3oj/fs9+w7
-        V60LwJs7N5o3+4qj7Cjkny2w1Bo8saE1qmWt9B4wMofsw6GWt8gkavYNGiHmkFdcQ1TB+GQc8gZ7
-        ayvuIRinRbr5TDoAnO2NOqf0iJs6gxuECiATULvpICbZecJs1pt6td6s6i2r35pd3Wz3LwLl8GhO
-        1NWNO1XDvA61pCDVWWgiFA5parOueHDWuguEMZAxmhN2gGnar6y8SM/0pYBwTQKuoPqsUJS+vK0T
-        fYQgsoGlk3Cx70D44HSvEs1/4cbRc+EFmTOycz2mmWjyyWCCcJGWN3XFpUrmQm7Wj4pbGWn5LBRo
-        +NOr9dOrw2wE7akKM1GMMO0QxA/5Uk5P6axiOv87dI59UUz4owk0pRSKvhG/TPz/eDsi1CZ6K28T
-        JV/O8kalPoA4GguLkSS1uB/pNcYXed0hP8tS+2H+k6z9r5tlqcXkxy/+qSp3AwMAAA==
+      string: '{"chore":{"id":"6","name":"Change the bed sheets","description":null,"period_type":"weekly","period_days":null,"row_created_timestamp":"2022-04-22
+        08:37:58","period_config":"monday","track_date_only":"1","rollover":"0","assignment_type":"no-assignment","assignment_config":null,"next_execution_assigned_to_user_id":null,"consume_product_on_execution":"0","product_id":null,"product_amount":null,"period_interval":"3","active":"1","start_date":"2021-01-01","rescheduled_date":"2022-05-02","rescheduled_next_execution_assigned_to_user_id":null},"last_tracked":"2022-04-01
+        00:00:00","tracked_count":19,"last_done_by":{"id":"1","username":"Demo User","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:55","display_name":"Demo User","picture_file_name":null},"next_estimated_execution_time":"2022-05-02
+        23:59:59","next_execution_assigned_user":null,"average_execution_frequency_hours":"576.0"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -316,18 +301,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:49 GMT
+      - Fri, 22 Apr 2022 08:40:14 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_generic/TestGeneric.test_delete_generic_error.yaml b/test/cassettes/test_generic/TestGeneric.test_delete_generic_error.yaml
index a8be9e0..2deba0d 100644
--- a/test/cassettes/test_generic/TestGeneric.test_delete_generic_error.yaml
+++ b/test/cassettes/test_generic/TestGeneric.test_delete_generic_error.yaml
@@ -7,15 +7,14 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/tasks/30000
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA6tWSi0qyi+Kz00tLk5MT1WyUvJPykpNLlHIyy9RSMsvzUtRqgUAcMoJfiQAAAA=
+      string: '{"error_message":"Object not found"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -25,18 +24,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:50 GMT
+      - Fri, 22 Apr 2022 08:40:16 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 404
       message: Not Found
diff --git a/test/cassettes/test_generic/TestGeneric.test_delete_generic_success.yaml b/test/cassettes/test_generic/TestGeneric.test_delete_generic_success.yaml
index 52be036..9df6e5d 100644
--- a/test/cassettes/test_generic/TestGeneric.test_delete_generic_success.yaml
+++ b/test/cassettes/test_generic/TestGeneric.test_delete_generic_success.yaml
@@ -7,17 +7,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/tasks/3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA0WN3QoCIRCFXyXm2gV/Isjn6F5Ep0XyZ3GUiOjd05bYu+HMd873huBBKwbZJgQN
-        N0sPAQw8kqtha6Fk0LnHOKKOxts2KcmlWLhchJxoySPj+2FaSEjNpu1fc6OylvoyUyQZWKKwZvSm
-        FdMJ6y8XDGp5Gldx0ON1jBwudRJXfRZaXYZ0Nu8Bo6fd8/kCH9CrIckAAAA=
+      string: '{"id":"3","name":"Task3","description":null,"due_date":"2022-04-22","done":"0","done_timestamp":null,"category_id":"1","assigned_to_user_id":"1","row_created_timestamp":"2022-04-22
+        08:37:58","userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -27,18 +25,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:50 GMT
+      - Fri, 22 Apr 2022 08:40:15 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_generic/TestGeneric.test_generic_add_invalid.yaml b/test/cassettes/test_generic/TestGeneric.test_generic_add_invalid.yaml
index f3cd7d6..868ab2a 100644
--- a/test/cassettes/test_generic/TestGeneric.test_generic_add_invalid.yaml
+++ b/test/cassettes/test_generic/TestGeneric.test_generic_add_invalid.yaml
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -32,13 +32,13 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:49 GMT
+      - Fri, 22 Apr 2022 08:40:15 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 400
       message: Bad Request
diff --git a/test/cassettes/test_generic/TestGeneric.test_generic_add_valid.yaml b/test/cassettes/test_generic/TestGeneric.test_generic_add_valid.yaml
index 6eed861..a4599b0 100644
--- a/test/cassettes/test_generic/TestGeneric.test_generic_add_valid.yaml
+++ b/test/cassettes/test_generic/TestGeneric.test_generic_add_valid.yaml
@@ -11,15 +11,14 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
     uri: https://localhost/api/objects/batteries
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA6tWSi5KTSxJTYnPT8pKTS6Jz0xRslIyU6oFAAJYmJYZAAAA
+      string: '{"created_object_id":"5"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -29,18 +28,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 12:18:47 GMT
+      - Fri, 22 Apr 2022 08:40:15 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_generic/TestGeneric.test_generic_update_invalid_data.yaml b/test/cassettes/test_generic/TestGeneric.test_generic_update_invalid_data.yaml
index 07a6d58..41bcbfa 100644
--- a/test/cassettes/test_generic/TestGeneric.test_generic_update_invalid_data.yaml
+++ b/test/cassettes/test_generic/TestGeneric.test_generic_update_invalid_data.yaml
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/octet-stream
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - '*/*'
     method: PUT
@@ -32,13 +32,13 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:50 GMT
+      - Fri, 22 Apr 2022 08:40:15 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 400
       message: Bad Request
diff --git a/test/cassettes/test_generic/TestGeneric.test_generic_update_invalid_id.yaml b/test/cassettes/test_generic/TestGeneric.test_generic_update_invalid_id.yaml
index a925704..e69a35b 100644
--- a/test/cassettes/test_generic/TestGeneric.test_generic_update_invalid_id.yaml
+++ b/test/cassettes/test_generic/TestGeneric.test_generic_update_invalid_id.yaml
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - '*/*'
     method: PUT
@@ -31,13 +31,13 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Sun, 22 Aug 2021 08:34:18 GMT
+      - Fri, 22 Apr 2022 08:40:15 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 400
       message: Bad Request
diff --git a/test/cassettes/test_generic/TestGeneric.test_generic_update_valid.yaml b/test/cassettes/test_generic/TestGeneric.test_generic_update_valid.yaml
index 7057e55..a22dba5 100644
--- a/test/cassettes/test_generic/TestGeneric.test_generic_update_valid.yaml
+++ b/test/cassettes/test_generic/TestGeneric.test_generic_update_valid.yaml
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - '*/*'
     method: PUT
@@ -31,11 +31,11 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 07:21:58 GMT
+      - Fri, 22 Apr 2022 08:40:15 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 204
       message: No Content
diff --git a/test/cassettes/test_grocy/TestGrocy.test_add_product_by_barcode_error.yaml b/test/cassettes/test_grocy/TestGrocy.test_add_product_by_barcode_error.yaml
index b69559e..fb51278 100644
--- a/test/cassettes/test_grocy/TestGrocy.test_add_product_by_barcode_error.yaml
+++ b/test/cassettes/test_grocy/TestGrocy.test_add_product_by_barcode_error.yaml
@@ -1,17 +1,18 @@
 interactions:
 - request:
-    body: '{"amount": 1, "transaction_type": "purchase", "price": 5}'
+    body: '{"amount": 1, "transaction_type": "purchase", "price": 5, "best_before_date":
+      "2019-05-04"}'
     headers:
       Accept-Encoding:
       - gzip, deflate
       Connection:
       - keep-alive
       Content-Length:
-      - '57'
+      - '91'
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -31,13 +32,13 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 09:41:06 GMT
+      - Fri, 22 Apr 2022 08:40:16 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 400
       message: Bad Request
diff --git a/test/cassettes/test_grocy/TestGrocy.test_add_product_by_barcode_valid.yaml b/test/cassettes/test_grocy/TestGrocy.test_add_product_by_barcode_valid.yaml
index ce06372..cf5440f 100644
--- a/test/cassettes/test_grocy/TestGrocy.test_add_product_by_barcode_valid.yaml
+++ b/test/cassettes/test_grocy/TestGrocy.test_add_product_by_barcode_valid.yaml
@@ -1,29 +1,26 @@
 interactions:
 - request:
-    body: '{"amount": 1, "transaction_type": "purchase", "price": 5}'
+    body: '{"amount": 1, "transaction_type": "purchase", "price": 5, "best_before_date":
+      "2019-05-04"}'
     headers:
       Accept-Encoding:
       - gzip, deflate
       Connection:
       - keep-alive
       Content-Length:
-      - '57'
+      - '91'
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
     uri: https://localhost/api/stock/products/by-barcode/42141099/add
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA21Q207EIBD9FcPzblJwrdpfMYbQYdYltgwZIMYY/12mxN2a+Macw8y5vHyp4NWk
-        9Emrg0pMvkKxG3RqgFupxiJ8G2bMxc54JkbrXcEGm8Hoo9ZHcy/bleHiMvp/2XojYl2Wg8qJwoIi
-        PrTlXAjeu/Con2EecESHMDaqsIvZQQkUbflMovsrJaocQKCH9q7RU5RBLvbBlrA2325Nauq6lDBe
-        PXaI6cMCY8vk9/938e60mYyZ9FM7vBC4zcy1JkYICTf3/SAQMy63Xx3dB9l2JamHs9PuEeRyL0Hc
-        CN2X8oVSCvHN/pHtXOuUe2dafb/+AANkFP3MAQAA
+      string: '[{"id":"80","product_id":"4","amount":"1","best_before_date":"2019-05-04","purchased_date":"2022-04-22","used_date":null,"spoiled":"0","stock_id":"626269f04c68f","transaction_type":"purchase","price":"5","undone":"0","undone_timestamp":null,"opened_date":null,"location_id":"4","recipe_id":null,"correlation_id":null,"transaction_id":"626269f04c68e","stock_row_id":null,"shopping_location_id":null,"user_id":"1","row_created_timestamp":"2022-04-22
+        08:40:16","note":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -33,18 +30,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 12:22:18 GMT
+      - Fri, 22 Apr 2022 08:40:16 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -56,28 +51,19 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81Vy27bMBD8lYDnOLAUG6l97Q/0XhQLmlpJRCiR4cOuE+Tfu0tKttMGhnvLxbD2
-        Re7M7PJNOG+bpKLYvgndiK1YiXsxygHp73evgwv03WBQXruo7Si2YzLmfk6DztvkIGdWFClV1HvO
-        5Q9jleSc4ubCobfO6bGDD65S8SVRHLjkVS8Dl3ikhGIM0arns6WlU6w/hUK0MEdUD0vKGvRYLCAH
-        m0ZqTlRsb7CVyUTYYeCf1nqERh4D+a+5QbYRPViH1P4tka1HfKU2b4uOvTycg51WMdG9Wm0QChEF
-        HxzljkxRkvOAuusj9HJszDn1wsUnZyhGG0H1qJ4nQNpkqLIZcIxA/YNHpR3OCDgqTo5JE5m3criS
-        xnqd46qaiVFpSEZGhL+xBttCSLu5xly5SXT1o5ul8ZI0XUnZMaQBL1jKd+51g0CyyaSC3aPfazxM
-        YHp7AOWRjm4g6oGYlIMjX72sq0VVLer6rnrc1sttXV8w7rymvkpBI3dopmrSGKqXLeCI4zRqVgur
-        gbSaTAMM4I7o8PZ1ov/9rP6d9MrSdIjtz2l8GJtL+PI8TWFUeFVXq2q52VBUlvY8TrNOC9rXxsRI
-        0i61owjKEv1/iFA/U+b7LxrRXG2aOR7/E4zcSPamgP84CpDzpcWa+ym2vTSJSa6/VQ/rk7VE5gnK
-        xTK+PNQT9SC7zmPHpFLuepNlcHnIlPoxrih8HuqXJMeo4zFzeFoOp73G/Ux77YekbfLpVrsZyoo7
-        5nLgTPKS5cRVA1mLgYdrIF0wRSSYj5fLnX2Rm13qSTBjct/N+hKrh6cnMllDGj+pbrbmzGtSnZm5
-        FjPi7wi8HBoiP+uv2iyWNMkM8PxKnKC6fJxo9x3vVHI7K31DwZ88UjfTWfNzpQNNOS1u9HSPpSDW
-        JK0e2SGEHk0LRrfzc7F4rEnwzmoDnpcgrQ5Fi1Nsn9a5zlnO593GmqeXjbaxNg0po5Um4PsfAAPk
-        yIEHAAA=
+      string: '{"product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[{"id":"3","product_id":"4","barcode":"42141099","qu_id":"3","amount":null,"shopping_location_id":null,"last_price":null,"row_created_timestamp":"2022-04-22
+        08:37:58","note":null}],"last_purchased":"2022-04-22","last_used":null,"stock_amount":"6","stock_value":"24.09","stock_amount_opened":"0","stock_amount_aggregated":"6.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"5","avg_price":"4.02","oldest_price":"5","current_price":"5","last_shopping_location_id":null,"default_shopping_location_id":null,"next_due_date":"2019-05-04","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-5,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -87,18 +73,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 12:22:18 GMT
+      - Fri, 22 Apr 2022 08:40:16 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_grocy/TestGrocy.test_consume_product_by_barcode_error.yaml b/test/cassettes/test_grocy/TestGrocy.test_consume_product_by_barcode_error.yaml
index 9ac898b..7426932 100644
--- a/test/cassettes/test_grocy/TestGrocy.test_consume_product_by_barcode_error.yaml
+++ b/test/cassettes/test_grocy/TestGrocy.test_consume_product_by_barcode_error.yaml
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -31,13 +31,13 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 14:07:20 GMT
+      - Fri, 22 Apr 2022 08:40:16 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 400
       message: Bad Request
diff --git a/test/cassettes/test_grocy/TestGrocy.test_consume_product_by_barcode_valid.yaml b/test/cassettes/test_grocy/TestGrocy.test_consume_product_by_barcode_valid.yaml
index 2b0f9ec..d8ec418 100644
--- a/test/cassettes/test_grocy/TestGrocy.test_consume_product_by_barcode_valid.yaml
+++ b/test/cassettes/test_grocy/TestGrocy.test_consume_product_by_barcode_valid.yaml
@@ -11,19 +11,15 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
     uri: https://localhost/api/stock/products/by-barcode/42141099/consume
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA3VQy07EMAz8FZTzFtWhLLS/glCUJl42oo2jPIQQ4t9xErG7HDh6xh7PzMuXcFYs
-        AiYpDiJEssVk1aCJAb1T8Zn5AXhaMWW14okiKqszMi5HmIcRBpjreYnmrBPaKyuZgkE+MFv+I1Ig
-        t2F1MfJaymTeu4MjzMYeR1gnsNVejtonbbIjr/JnqP8N+VR2rM+jMxWB+7l6Kd6Sr3PV7IPKbucE
-        eg9i8WXbDoIC+ovbDkX6UCYip7O3+xz0N8odyEXKBZ5ZeCOjm51LYxGNC9j8d0FDMeJ23erobZR2
-        27Kak36cYH5i5V5DdVPpfpTOFILzb+rP285xu7G3BuL79QeC7pDY1wEAAA==
+      string: '[{"id":"81","product_id":"4","amount":"-1","best_before_date":"2019-05-04","purchased_date":"2022-04-22","used_date":"2022-04-22","spoiled":"0","stock_id":"626269f04c68f","transaction_type":"consume","price":"5","undone":"0","undone_timestamp":null,"opened_date":null,"location_id":"4","recipe_id":null,"correlation_id":null,"transaction_id":"626269f09f853","stock_row_id":null,"shopping_location_id":null,"user_id":"1","row_created_timestamp":"2022-04-22
+        08:40:16","note":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -33,18 +29,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 12:22:18 GMT
+      - Fri, 22 Apr 2022 08:40:16 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -56,28 +50,19 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81V227bMAz9lULPTRG7ydbkdT+w92EgFJm2hcqWqkuytOi/j5StJN2KIHvbS9Hw
-        ZvKcQ+pNOG+bpKLYvgndiK1YiXsxygHp329eBxfod4NBee2itqPYjsmY+5IGnbfJQc6sKFKqqPec
-        yz+MVZJzJjcXDr11To8dfHBNFV8SxYFLXvUycIlHSpiMIVr1fLa09BXrT6EQLZSI6mFJWYMeJwvI
-        waaRhhMV2xtsZTIRdhj4T2s9QiOPgfzX3CDbiB6sQxr/lsjWI77SmLdFx14ezsFOq5ior1YbhImI
-        CR8c5Y5MUZLzgLrrI/RybMw59cLFX85QjDaC6lE9z4C0yVBlM+AYgeYHj0o7LAg4Kk6OWROZt+nj
-        ShrrdY6raiZGpSEZGRH+xBpsCyHtSo1SuUnU+tEVabwkTS0pO4Y04AVLuedeNwgkm0wq2D36vcbD
-        DKa3B1Ae6dMNRD0Qk3Jw5KuXdbWoqkVd31WP23q5resLxp3XNNdU0MgdmrmaNIbqZQs44jiNmtXC
-        aiCtJtMAA7gjOrx9nel/P6t/J72ytB1i+2NeH8bmEr68T3MYFV7V1apabjYUlaVd1qnodEL72poY
-        SdqlcRRBOUX/GyI0z5z5/pNWNFebd47X/wQjD5K9KeBfjgnI0rRYPzFevKSwlyYxyfXXzcOaj8Bl
-        aF6hXC0DnBOmIiC7zmPHrFLy+inr4JPUj3GTxMtWvyQ5Rh2PmcTTdTgdNh5oPmzfJZ2TT8/azVhW
-        TCGXA2eSl6wnrhrIOhl4uwYSBnNEivnYXJ7sP+nsUlBiTf3LfVcEJlYPT7xG1pDIT7Ir1px5TauF
-        mWsxI/6KwNehIfKzAKvNYkmrzACXZ+IE1eXrRMfveKeS21npGwr+5JW6mc6apaoDrTldbvTUx1IQ
-        a5Juj+wQQo+mBaPb8l4sHmuStrPagOcrSLdD0eUU2y/LXOcs5/NxY83T00bnWJuGlNFKE/D9N9N4
-        xRmCBwAA
+      string: '{"product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[{"id":"3","product_id":"4","barcode":"42141099","qu_id":"3","amount":null,"shopping_location_id":null,"last_price":null,"row_created_timestamp":"2022-04-22
+        08:37:58","note":null}],"last_purchased":"2022-04-22","last_used":"2022-04-22","stock_amount":"5","stock_value":"19.09","stock_amount_opened":"0","stock_amount_aggregated":"5.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"5","avg_price":"3.82","oldest_price":"4.855","current_price":"4.855","last_shopping_location_id":null,"default_shopping_location_id":null,"next_due_date":"2022-10-19","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-5,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -87,18 +72,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 12:22:18 GMT
+      - Fri, 22 Apr 2022 08:40:16 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_grocy/TestGrocy.test_inventory_product_by_barcode_error.yaml b/test/cassettes/test_grocy/TestGrocy.test_inventory_product_by_barcode_error.yaml
index 93cf8f0..10d9685 100644
--- a/test/cassettes/test_grocy/TestGrocy.test_inventory_product_by_barcode_error.yaml
+++ b/test/cassettes/test_grocy/TestGrocy.test_inventory_product_by_barcode_error.yaml
@@ -7,28 +7,19 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/by-barcode/42141099
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81Vy27bMBD8lYDnOLBku0187Q/0XhQLmlpJRCiR4cOuE+Tfu0tKttMagXvrxbD2
-        Re7M7PJNOG+bpKLYvgndiK1Yi3sxygHp7zevgwv03WBQXruo7Si2YzLmfk6DztvkIGdWFClV1HvO
-        5Q9jleSc4ubCobfO6bGDD65S8SVRHLjkVS8Dl1hRQjGGaNXz2dLSKdafQiFamCOqhyVlDXosFpCD
-        TSM1Jyq2N9jKZCLsMPBPaz1CI4+B/J+5QbYRPViH1P4tka1HfKU2b4uOvTycg51WMdG9Wm0QChEF
-        HxzljkxRkvOAuusj9HJszDn1wsUnZyhGG0H1qJ4nQNpkqLIZcIxA/YNHpR3OCDgqTo5JE5m3criS
-        xnqd46qaiVFpSEZGhD+xBttCSLu5xly5SXT1o5ul8ZI0XUnZMaQBL1jKd+51g0CyyaSC3aPfazxM
-        YHp7AOWRjm4g6oGYlIMjX72sq0VVLer6rlpt6+W2ri8Yd15TX6WgkTs0UzVpDNXLFnDEcRo1q4XV
-        QFpNpgEGcEd0ePs60f9+Vv9OemVpOsT2xzQ+jM0lfHmepjAqvK6rdbV8eqKoLO15nGadFrQ/GxMj
-        SbvUjiIoS/S/IUL9TJnvP2lEc7Vp5nj8TzByI9mbAv7lKEDOlxbrDePFQwp7aRKTvHl8LAK8DM0j
-        lKtlgHNCKQKy6zx2zCqjtMk6uJL6Ma6cME/1S5Jj1PGYSTxth9Ni44amxfZd0jq5utZuxrJiCrkc
-        OJO8ZD1x1UDWYuDpGkgYzBEp5uPlcmf/yc0uBSWqDTMj990sMVGtCsrWkM5PyjuZc/Z1veY3YCbn
-        ekgR8Ii/IvCCaIj/rMHqabHcLJb8ZMwvxQmtyweK9t/xTiW3s9I3FHzlobqZ0ZqfLB1o0ml5o6d7
-        LAURJ2n9yA4h9GhaMLqdn4xN9eWRVO+sNuB5E9L+ULQ9xXb19WGTS51FfV5xjC89cLSUtWlIH600
-        Ad9/A5ls1FuIBwAA
+      string: '{"product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[{"id":"3","product_id":"4","barcode":"42141099","qu_id":"3","amount":null,"shopping_location_id":null,"last_price":null,"row_created_timestamp":"2022-04-22
+        08:37:58","note":null}],"last_purchased":"2022-04-22","last_used":"2022-04-22","stock_amount":"5","stock_value":"19.09","stock_amount_opened":"0","stock_amount_aggregated":"5.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"5","avg_price":"3.82","oldest_price":"4.855","current_price":"4.855","last_shopping_location_id":null,"default_shopping_location_id":null,"next_due_date":"2022-10-19","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-5,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -38,23 +29,21 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 14:53:58 GMT
+      - Fri, 22 Apr 2022 08:40:16 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
 - request:
-    body: '{"new_amount": 45, "best_before_date": "2019-05-04", "shopping_location_id":
+    body: '{"new_amount": 5, "best_before_date": "2019-05-04", "shopping_location_id":
       1, "location_id": 150, "price": true}'
     headers:
       Accept-Encoding:
@@ -62,11 +51,11 @@ interactions:
       Connection:
       - keep-alive
       Content-Length:
-      - '114'
+      - '113'
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -86,13 +75,13 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 14:53:58 GMT
+      - Fri, 22 Apr 2022 08:40:17 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 400
       message: Bad Request
diff --git a/test/cassettes/test_grocy/TestGrocy.test_inventory_product_by_barcode_valid.yaml b/test/cassettes/test_grocy/TestGrocy.test_inventory_product_by_barcode_valid.yaml
index 711a403..996de6d 100644
--- a/test/cassettes/test_grocy/TestGrocy.test_inventory_product_by_barcode_valid.yaml
+++ b/test/cassettes/test_grocy/TestGrocy.test_inventory_product_by_barcode_valid.yaml
@@ -7,28 +7,19 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/by-barcode/42141099
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81Vy27bMBD8lYDnOLBku0187Q/0XhQLmlpJRCiR4cOuE+Tfu0tKttMagXvrxbD2
-        Re7M7PJNOG+bpKLYvgndiK1Yi3sxygHp7zevgwv03WBQXruo7Si2YzLmfk6DztvkIGdWFClV1HvO
-        5Q9jleSc4ubCobfO6bGDD65S8SVRHLjkVS8Dl1hRQjGGaNXz2dLSKdafQiFamCOqhyVlDXosFpCD
-        TSM1Jyq2N9jKZCLsMPBPaz1CI4+B/J+5QbYRPViH1P4tka1HfKU2b4uOvTycg51WMdG9Wm0QChEF
-        HxzljkxRkvOAuusj9HJszDn1wsUnZyhGG0H1qJ4nQNpkqLIZcIxA/YNHpR3OCDgqTo5JE5m3criS
-        xnqd46qaiVFpSEZGhD+xBttCSLu5xly5SXT1o5ul8ZI0XUnZMaQBL1jKd+51g0CyyaSC3aPfazxM
-        YHp7AOWRjm4g6oGYlIMjX72sq0VVLer6rlpt6+W2ri8Yd15TX6WgkTs0UzVpDNXLFnDEcRo1q4XV
-        QFpNpgEGcEd0ePs60f9+Vv9OemVpOsT2xzQ+jM0lfHmepjAqvK6rdbV8eqKoLO15nGadFrQ/GxMj
-        SbvUjiIoS/S/IUL9TJnvP2lEc7Vp5nj8TzByI9mbAv7lKEDOlxbrDePFQwp7aRKTvHl8LAK8DM0j
-        lKtlgHNCKQKy6zx2zCqjtMk6uJL6Ma6cME/1S5Jj1PGYSTxth9Ni44amxfZd0jq5utZuxrJiCrkc
-        OJO8ZD1x1UDWYuDpGkgYzBEp5uPlcmf/yc0uBSWqDTMj990sMVGtCsrWkM5PyjuZc/Z1veY3YCbn
-        ekgR8Ii/IvCCaIj/rMHqabHcLJb8ZMwvxQmtyweK9t/xTiW3s9I3FHzlobqZ0ZqfLB1o0ml5o6d7
-        LAURJ2n9yA4h9GhaMLqdn4xN9eWRVO+sNuB5E9L+ULQ9xXb19WGTS51FfV5xjC89cLSUtWlIH600
-        Ad9/A5ls1FuIBwAA
+      string: '{"product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[{"id":"3","product_id":"4","barcode":"42141099","qu_id":"3","amount":null,"shopping_location_id":null,"last_price":null,"row_created_timestamp":"2022-04-22
+        08:37:58","note":null}],"last_purchased":"2022-04-22","last_used":"2022-04-22","stock_amount":"5","stock_value":"19.09","stock_amount_opened":"0","stock_amount_aggregated":"5.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"5","avg_price":"3.82","oldest_price":"4.855","current_price":"4.855","last_shopping_location_id":null,"default_shopping_location_id":null,"next_due_date":"2022-10-19","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-5,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -38,23 +29,21 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 14:53:58 GMT
+      - Fri, 22 Apr 2022 08:40:17 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
 - request:
-    body: '{"new_amount": 55, "best_before_date": "2019-05-04", "location_id": 1,
+    body: '{"new_amount": 15, "best_before_date": "2019-05-04", "location_id": 1,
       "price": 150}'
     headers:
       Accept-Encoding:
@@ -66,19 +55,15 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
     uri: https://localhost/api/stock/products/by-barcode/42141099/inventory
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA2VQ227DIAz9lYnnRoJc1ia/Mk2IgLOipRhx2VRN+/dh0JZKe/Q5ts/l5YtZwxYm
-        LpydmA9osk6yQmMB1A2zS8QTvUJMcoUNA0ijEhS852Lu+NRx2vY56KuKYA62F50QXT8UNh+Ey/t+
-        YtGj3YHU6XlMqN+b8rOY9QabWodRE5WCclHpZNHJdPeka90HuITh3mkMASpHDoLVRIuJ7rIz6Gg8
-        BpnsraRQN8+W5gI9uD/HDQr4KXWAktA87pewv3GexLhMwzLNRWVHraq1VmRBih/roWZpD6vH/dhq
-        6GOseltyG84vZ6HUWZc/rRJyQ3Q7ilf03ro3+V+2FBxagYJ9v/4A9PKThtoBAAA=
+      string: '[{"id":"82","product_id":"4","amount":"10","best_before_date":"2019-05-04","purchased_date":"2022-04-22","used_date":null,"spoiled":"0","stock_id":"626269f1428b4","transaction_type":"inventory-correction","price":"150","undone":"0","undone_timestamp":null,"opened_date":null,"location_id":"1","recipe_id":null,"correlation_id":null,"transaction_id":"626269f1428b3","stock_row_id":null,"shopping_location_id":null,"user_id":"1","row_created_timestamp":"2022-04-22
+        08:40:17","note":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -88,18 +73,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 14:53:59 GMT
+      - Fri, 22 Apr 2022 08:40:17 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -111,28 +94,19 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81Vy27bMBD8lYLnODBlq0l07Q/0XhQLmqIkIpTI8GHXCfLv3SUl22mNwL31Ylj7
-        IndmdvnGnLdtkpE1b0y3rGFbdscmMSr8+83r4AJ+typIr13UdmLNlIy5W9Kg9zY5yJkcI4WMek+5
-        9GGsFJRT3FQ4DNY5PfXwwVUqviSMA5e8HESgEhtMKMYQrXw+Wzo8xfpTKEQLSwS/X2PWqKdiATHa
-        NGFzjJO9VZ1IJsJOBfrprFfQimNA/2duEF1UHqxT2P4tkZ1X6hXbvC06DuJwDnZaxoT36rRRUIgo
-        +KhJ7NAUBToPSvdDhEFMrTmnXrjo5AzFZCPIQcnnGZAuGaxsRjVFwP7BK6mdWhBwWBwdsyYyb+Vw
-        KYz1OsfxioiRaUxGRAV/Yg22g5B2S42lcpvw6ke3SOMlabyStFNIo7pgKd950K0ClE0mFexe+b1W
-        hxlMbw8gvcKjW4h6RCbF6NBXrSu+4nxVVV/4pqnWTVVdMO68xr5KQSN2yszVhDFYL1vAIcdp0qQW
-        UgNqNZkWCMAd0uHt60z/+1n9O+GlxelgzY95fAibS/jyPM1hWHhb8S1fPz1hVJb2Mk6LTgvan42J
-        EahdbEcilCX63xDBfubM9584ornaPHM0/icYqZHsTUH95ShALpdmdU140ZDCXphEJD9sHosAL0Pz
-        COVqGeCcUIqA6HuvemIVk+s66+BK6se4csIy1S9JTFHHYybxtB1Oi40amhfbd4Hr5OpauxlLThRS
-        OXAmeUF6oqoBrcVA0zWiMIgjVMzHy+XO/pObXQqK8ZqYEft+kRjjm20mwxrU+Ul5J3POvq7X/AYs
-        5FwPKQKe1K8ItCBa5D9rkD+t1vVqTU/G8lKc0Lp8oHD/Hb/I5HZW+BaDrzxUNzNa0ZOlA046Lm/l
-        8R5rhsQJXD+iVxAGZTowuluejJp/fUTVO6sNeNqEuD8kbk/WbB7u61zqLOrziiN88YHDpaxNi/ro
-        hAnq/TcsMeFEiAcAAA==
+      string: '{"product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[{"id":"3","product_id":"4","barcode":"42141099","qu_id":"3","amount":null,"shopping_location_id":null,"last_price":null,"row_created_timestamp":"2022-04-22
+        08:37:58","note":null}],"last_purchased":"2022-04-22","last_used":"2022-04-22","stock_amount":"15","stock_value":"1519.09","stock_amount_opened":"0","stock_amount_aggregated":"15.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"150","avg_price":"101.27","oldest_price":"150","current_price":"150","last_shopping_location_id":null,"default_shopping_location_id":null,"next_due_date":"2019-05-04","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-5,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -142,18 +116,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 14:53:59 GMT
+      - Fri, 22 Apr 2022 08:40:17 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_grocy/TestGrocy.test_inventory_product_error.yaml b/test/cassettes/test_grocy/TestGrocy.test_inventory_product_error.yaml
index fb44351..e32238d 100644
--- a/test/cassettes/test_grocy/TestGrocy.test_inventory_product_error.yaml
+++ b/test/cassettes/test_grocy/TestGrocy.test_inventory_product_error.yaml
@@ -7,28 +7,19 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81Vy27bMBD8lYLnODBlq0l07Q/0XhQLmqIkIpTI8GHXCfLv3SUl22mNwL31Ylj7
-        IndmdvnGnLdtkpE1b0y3rGFbdscmMSr8+83r4AJ+typIr13UdmLNlIy5W9Kg9zY5yJkcI4WMek+5
-        9GGsFJRT3FQ4DNY5PfXwwVUqviSMA5e8HESgEhtMKMYQrXw+Wzo8xfpTKEQLSwS/X2PWqKdiATHa
-        NGFzjJO9VZ1IJsJOBfrprFfQimNA/2duEF1UHqxT2P4tkZ1X6hXbvC06DuJwDnZaxoT36rRRUIgo
-        +KhJ7NAUBToPSvdDhEFMrTmnXrjo5AzFZCPIQcnnGZAuGaxsRjVFwP7BK6mdWhBwWBwdsyYyb+Vw
-        KYz1OsfxioiRaUxGRAV/Yg22g5B2S42lcpvw6ke3SOMlabyStFNIo7pgKd950K0ClE0mFexe+b1W
-        hxlMbw8gvcKjW4h6RCbF6NBXrSu+4nxVVV/4pqnWTVVdMO68xr5KQSN2yszVhDFYL1vAIcdp0qQW
-        UgNqNZkWCMAd0uHt60z/+1n9O+GlxelgzY95fAibS/jyPM1hWHhb8S1fPz1hVJb2Mk6LTgvan42J
-        EahdbEcilCX63xDBfubM9584ornaPHM0/icYqZHsTUH95ShALpdmdU140ZDCXphEJD9sHosAL0Pz
-        COVqGeCcUIqA6HuvemIVk+s66+BK6se4csIy1S9JTFHHYybxtB1Oi40amhfbd4Hr5OpauxlLThRS
-        OXAmeUF6oqoBrcVA0zWiMIgjVMzHy+XO/pObXQqK8ZqYEft+kRjjm20mwxrU+Ul5J3POvq7X/AYs
-        5FwPKQKe1K8ItCBa5D9rkD+t1vVqTU/G8lKc0Lp8oHD/Hb/I5HZW+BaDrzxUNzNa0ZOlA046Lm/l
-        8R5rhsQJXD+iVxAGZTowuluejJp/fUTVO6sNeNqEuD8kbk/WbB7u61zqLOrziiN88YHDpaxNi/ro
-        hAnq/TcsMeFEiAcAAA==
+      string: '{"product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[{"id":"3","product_id":"4","barcode":"42141099","qu_id":"3","amount":null,"shopping_location_id":null,"last_price":null,"row_created_timestamp":"2022-04-22
+        08:37:58","note":null}],"last_purchased":"2022-04-22","last_used":"2022-04-22","stock_amount":"15","stock_value":"1519.09","stock_amount_opened":"0","stock_amount_aggregated":"15.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"150","avg_price":"101.27","oldest_price":"150","current_price":"150","last_shopping_location_id":null,"default_shopping_location_id":null,"next_due_date":"2019-05-04","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-5,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -38,23 +29,21 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 14:53:59 GMT
+      - Fri, 22 Apr 2022 08:40:17 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
 - request:
-    body: '{"new_amount": 55, "best_before_date": "2019-05-04", "shopping_location_id":
+    body: '{"new_amount": 15, "best_before_date": "2019-05-04", "shopping_location_id":
       1, "location_id": 1, "price": 150}'
     headers:
       Accept-Encoding:
@@ -66,7 +55,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -86,13 +75,13 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 14:53:59 GMT
+      - Fri, 22 Apr 2022 08:40:17 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 400
       message: Bad Request
diff --git a/test/cassettes/test_grocy/TestGrocy.test_inventory_product_valid.yaml b/test/cassettes/test_grocy/TestGrocy.test_inventory_product_valid.yaml
index ce841b7..221dcac 100644
--- a/test/cassettes/test_grocy/TestGrocy.test_inventory_product_valid.yaml
+++ b/test/cassettes/test_grocy/TestGrocy.test_inventory_product_valid.yaml
@@ -7,28 +7,19 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81Vy27bMBD8lYLnODBlq0l07Q/0XhQLmqIkIpTI8GHXCfLv3SUl22mNwL31Ylj7
-        IndmdvnGnLdtkpE1b0y3rGFbdscmMSr8+83r4AJ+typIr13UdmLNlIy5W9Kg9zY5yJkcI4WMek+5
-        9GGsFJRT3FQ4DNY5PfXwwVUqviSMA5e8HESgEhtMKMYQrXw+Wzo8xfpTKEQLSwS/X2PWqKdiATHa
-        NGFzjJO9VZ1IJsJOBfrprFfQimNA/2duEF1UHqxT2P4tkZ1X6hXbvC06DuJwDnZaxoT36rRRUIgo
-        +KhJ7NAUBToPSvdDhEFMrTmnXrjo5AzFZCPIQcnnGZAuGaxsRjVFwP7BK6mdWhBwWBwdsyYyb+Vw
-        KYz1OsfxioiRaUxGRAV/Yg22g5B2S42lcpvw6ke3SOMlabyStFNIo7pgKd950K0ClE0mFexe+b1W
-        hxlMbw8gvcKjW4h6RCbF6NBXrSu+4nxVVV/4pqnWTVVdMO68xr5KQSN2yszVhDFYL1vAIcdp0qQW
-        UgNqNZkWCMAd0uHt60z/+1n9O+GlxelgzY95fAibS/jyPM1hWHhb8S1fPz1hVJb2Mk6LTgvan42J
-        EahdbEcilCX63xDBfubM9584ornaPHM0/icYqZHsTUH95ShALpdmdU140ZDCXphEJD9sHosAL0Pz
-        COVqGeCcUIqA6HuvemIVk+s66+BK6se4csIy1S9JTFHHYybxtB1Oi40amhfbd4Hr5OpauxlLThRS
-        OXAmeUF6oqoBrcVA0zWiMIgjVMzHy+XO/pObXQqK8ZqYEft+kRjjm20mwxrU+Ul5J3POvq7X/AYs
-        5FwPKQKe1K8ItCBa5D9rkD+t1vVqTU/G8lKc0Lp8oHD/Hb/I5HZW+BaDrzxUNzNa0ZOlA046Lm/l
-        8R5rhsQJXD+iVxAGZTowuluejJp/fUTVO6sNeNqEuD8kbk/WbB7u61zqLOrziiN88YHDpaxNi/ro
-        hAnq/TcsMeFEiAcAAA==
+      string: '{"product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[{"id":"3","product_id":"4","barcode":"42141099","qu_id":"3","amount":null,"shopping_location_id":null,"last_price":null,"row_created_timestamp":"2022-04-22
+        08:37:58","note":null}],"last_purchased":"2022-04-22","last_used":"2022-04-22","stock_amount":"15","stock_value":"1519.09","stock_amount_opened":"0","stock_amount_aggregated":"15.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"150","avg_price":"101.27","oldest_price":"150","current_price":"150","last_shopping_location_id":null,"default_shopping_location_id":null,"next_due_date":"2019-05-04","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-5,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -38,23 +29,21 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 14:53:59 GMT
+      - Fri, 22 Apr 2022 08:40:17 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
 - request:
-    body: '{"new_amount": 65, "best_before_date": "2019-05-04", "shopping_location_id":
+    body: '{"new_amount": 25, "best_before_date": "2019-05-04", "shopping_location_id":
       1, "location_id": 1, "price": 150}'
     headers:
       Accept-Encoding:
@@ -66,19 +55,15 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
     uri: https://localhost/api/stock/products/4/inventory
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA2VQ20rEMBD9FcnzFpJe3La/IhLSZOoG20zIRVnEf3fSoF3wcc6ZmXN5+WLWsJmJ
-        UbAL8wFN1kkeUE+A2jG7VHhO0wIxyQVWDCCNSkB4y8XU8KHhZdvnoG8qgjnZVjRCNG1HbD4Jl7ft
-        wqJHu0FRL89jQv1elZ/FpFdY1dL1ulApKBeVThadTHdfdK37AJcw3BuNIcDBFQfB6kKLodxlZ9CV
-        8RxksjulULtnc3WBHtyf4woF/JQ6ACU0j/sU9jfOk+jnoZuHiVQ21OqwVoskhPxYD0eW+vDwuJ1b
-        FX2MddxSbsP5eB0V7670p1ZS3BS6HsUbem/dm/wvSwWHWqBg368/Isamy9oBAAA=
+      string: '[{"id":"83","product_id":"4","amount":"10","best_before_date":"2019-05-04","purchased_date":"2022-04-22","used_date":null,"spoiled":"0","stock_id":"626269f1cf8ca","transaction_type":"inventory-correction","price":"150","undone":"0","undone_timestamp":null,"opened_date":null,"location_id":"1","recipe_id":null,"correlation_id":null,"transaction_id":"626269f1cf8c8","stock_row_id":null,"shopping_location_id":"1","user_id":"1","row_created_timestamp":"2022-04-22
+        08:40:17","note":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -88,18 +73,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 14:53:59 GMT
+      - Fri, 22 Apr 2022 08:40:17 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -111,28 +94,19 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81Vy27bMBD8lYLnOLDk2E187Q/0XhQLmlpJRCiR4cOuE+Tfu0tKttMagXvrxbD2
-        Re7M7PJNOG+bpKLYvgndiK14EHdilAPS329eBxfou8GgvHZR21Fsx2TM3ZwGnbfJQc6sKFKqqPec
-        yx/GKsk5xc2FQ2+d02MHH1yl4kuiOHDJq14GLrGihGIM0arns6WlU6w/hUK0MEdU90vKGvRYLCAH
-        m0ZqTlRsb7CVyUTYYeCf1nqERh4D+T9zg2wjerAOqf1bIluP+Ept3hYde3k4BzutYqJ7tdogFCIK
-        PjjKHZmiJOcBdddH6OXYmHPqhYtPzlCMNoLqUT1PgLTJUGUz4BiB+gePSjucEXBUnByTJjJv5XAl
-        jfU6x1U1E6PSkIyMCH9iDbaFkHZzjblyk+jqRzdL4yVpupKyY0gDXrCU79zrBoFkk0kFu0e/13iY
-        wPT2AMojHd1A1AMxKQdHvnpZV4uqWtT1l2q1rZfbur5g3HlNfZWCRu7QTNWkMVQvW8ARx2nUrBZW
-        A2k1mQYYwB3R4e3rRP/7Wf076ZWl6RDbH9P4MDaX8OV5msKo8ENdPVTLpyeKytKex2nWaUH7szEx
-        krRL7SiCskT/GyLUz5T5/pNGNFebZo7H/wQjN5K9KeBfjgLkfGmxWTNePKSwlyYxyY+Pj0WAl6F5
-        hHK1DHBOKEVAdp3Hjlml5M066+BK6se4csI81S9JjlHHYybxtB1Oi40bmhbbd0nr5OpauxnLiink
-        cuBM8pL1xFUDWYuBp2sgYTBHpJiPl8ud/Sc3uxSUqNbMjNx3s8REtdpkMqwhnZ+UdzLn7Ot6zW/A
-        TM71kCLgEX9F4AXREP9Zg9XTYrleLPnJmF+KE1qXDxTtv+MXldzOSt9Q8JWH6mZGa36ydKBJp+WN
-        nu6xFEScpPUjO4TQo2nB6HZ+MtbV5pFU76w24HkT0v5QtD3FdvX1fp1LnUV9XnGMLz1wtJS1aUgf
-        rTQB338DsIaNHogHAAA=
+      string: '{"product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[{"id":"3","product_id":"4","barcode":"42141099","qu_id":"3","amount":null,"shopping_location_id":null,"last_price":null,"row_created_timestamp":"2022-04-22
+        08:37:58","note":null}],"last_purchased":"2022-04-22","last_used":"2022-04-22","stock_amount":"25","stock_value":"3019.09","stock_amount_opened":"0","stock_amount_aggregated":"25.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"150","avg_price":"120.76","oldest_price":"150","current_price":"150","last_shopping_location_id":"1","default_shopping_location_id":null,"next_due_date":"2019-05-04","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-5,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -142,18 +116,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 23 Nov 2021 14:53:59 GMT
+      - Fri, 22 Apr 2022 08:40:17 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_valid.yaml b/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_valid.yaml
index 66862a4..91ebac7 100644
--- a/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_valid.yaml
+++ b/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_valid.yaml
@@ -7,19 +7,28 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/meal_plan
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA83U3QqCMBQH8FeRcz1hm2a25+guQoaOGvjVnIVE795SKXO0yxh4MQ7nP/zB2Tnc
-        QRbACIKCD8CAYkpCTEOcAgI9tMLUlMilOaD5kM2BqZx1Ql1lferGS+pGm0TdlyWCVjVFn+ux/bvC
-        q6avNTD8abr0iz7V3LJcCa5FkWlZiU7zql38HIkCsmMxYVECDzQJqCXYuQUm4JcgWgsIdgtMwC9B
-        bAmIW2ACfgk2loC6Bebh+CVILEHkFnj3DraWIHYLvJuidC3Ai100rsj31Lx26bQcf48R7M+yC8zH
-        gzn8p9V6fALTAMx5HgYAAA==
+      string: '[{"id":"1","day":"2022-04-18","type":"recipe","recipe_id":"1","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"2","day":"2022-04-19","type":"recipe","recipe_id":"2","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"3","day":"2022-04-20","type":"recipe","recipe_id":"3","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"3"},{"id":"4","day":"2022-04-21","type":"recipe","recipe_id":"4","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"5","day":"2022-04-22","type":"recipe","recipe_id":"2","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"6","day":"2022-04-23","type":"recipe","recipe_id":"1","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"7","day":"2022-04-24","type":"recipe","recipe_id":"4","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"8","day":"2022-04-19","type":"note","recipe_id":null,"recipe_servings":"1","note":"This
+        is a note","product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"9","day":"2022-04-17","type":"product","recipe_id":null,"recipe_servings":"1","note":null,"product_id":"3","product_amount":"1.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"3"},{"id":"10","day":"2022-04-18","type":"product","recipe_id":null,"recipe_servings":"1","note":null,"product_id":"9","product_amount":"1.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"11","day":"2022-04-20","type":"product","recipe_id":null,"recipe_servings":"1","note":null,"product_id":"25","product_amount":"1.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"12","day":"2022-04-23","type":"note","recipe_id":null,"recipe_servings":"1","note":"Some
+        good snacks","product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"3"}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -29,18 +38,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:50 GMT
+      - Fri, 22 Apr 2022 08:40:18 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_details_valid.yaml b/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_details_valid.yaml
index 38aeb65..eafd12b 100644
--- a/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_details_valid.yaml
+++ b/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_details_valid.yaml
@@ -7,20 +7,28 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/meal_plan
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA9WVzWrDMAzHXyX47IDlpF3i59htlGBisxkaO3OclTL67lOTsKXN5h03gw9C6C/r
-        B/p4eidGEQGUKHkmgnDGIWc8ZxWhJJx7jT6vW4MGXYxmEczuZtD+zdjnYUpiXUCFHY9HSnrv1NiG
-        KfzWIzs32kAE+wp6HVdx3p2a1msZtGqC6fQQZNevioMig1qUIIo9VqWcxT8x16DbYJydEuVwoTMa
-        36DVcTQUJIJW3KMBi6OhIBG0coMGcTQUJIK226DxOBoOZyJo+w1aEUdLZ9YeNmhlHC2dhqzu0dhq
-        Q04b/bMBr6t/3uU/dyR5fDFDhk9mi/ifXIL6lrPK+S+D94fdicWVGVSCgdhdZ+jbIweXwweKUAJF
-        wAcAAA==
+      string: '[{"id":"1","day":"2022-04-18","type":"recipe","recipe_id":"1","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"2","day":"2022-04-19","type":"recipe","recipe_id":"2","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"3","day":"2022-04-20","type":"recipe","recipe_id":"3","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"3"},{"id":"4","day":"2022-04-21","type":"recipe","recipe_id":"4","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"5","day":"2022-04-22","type":"recipe","recipe_id":"2","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"6","day":"2022-04-23","type":"recipe","recipe_id":"1","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"7","day":"2022-04-24","type":"recipe","recipe_id":"4","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"8","day":"2022-04-19","type":"note","recipe_id":null,"recipe_servings":"1","note":"This
+        is a note","product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"9","day":"2022-04-17","type":"product","recipe_id":null,"recipe_servings":"1","note":null,"product_id":"3","product_amount":"1.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"3"},{"id":"10","day":"2022-04-18","type":"product","recipe_id":null,"recipe_servings":"1","note":null,"product_id":"9","product_amount":"1.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"11","day":"2022-04-20","type":"product","recipe_id":null,"recipe_servings":"1","note":null,"product_id":"25","product_amount":"1.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"12","day":"2022-04-23","type":"note","recipe_id":null,"recipe_servings":"1","note":"Some
+        good snacks","product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"3"}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -30,18 +38,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:33 GMT
+      - Fri, 22 Apr 2022 08:40:18 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -53,24 +59,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/TQBCG/8rIJ5CcNE4pEsZY4s4Biasla7w7dbbZL/YjKEX8d2ZNVbVFAimY
-        g3OY2Xlm8nr87vdKyapt6sqioaqtPqv7e6zqSlIUQfmknOVod2j6Ty6QAeVjNt1wxYHOP41BN/XS
-        aRcgqsQHph6YmGoQzkZKlDJnUHK9UHYG0iqFGiJJkAoNWGezOQOpYJyERMYzSdmTktkmyAk0TjwA
-        UIKlC4HB2SKgVl/zmQEUkJs98k5OZ58ybuFjghMFB+RiqUYhciznE9zlmBzIzE8ZnJY8IQSastnC
-        Fx4aBM+JcMQoYc4ThTmQrXla7oSQ8KgMcj6iFSlzfUzwRKdf3CLIosX2D7lnOnXRo4WYzpo+DNWE
-        4jgHl63ciDJnC2GeXu1vbmpYfnav3w9V/1JbfgWF0j/R5L9pzL1832Xdd1r1l+rNEK4uhPWFf2AP
-        V2XGdXZ5CIN9qfllWhfSWjtdWP++14Wy0m4X1G8+sOp+L3/58bu/dMeXOVfxkkJay08K6y+esnx7
-        bNjBfRtFIEwkx6QMV6HxbN373b7Z7Pab5hqad+2bpr1+y6e9Yr8KNN4qTeOD9fti/ds7P3N+wkhj
-        pHBir47L/cAXggrMfha0Lo3iQOI4xoPzng9rFVPV7uoqnX25T6wLBnXpGJzMIo3lurFZ67rKjLpV
-        pCU3KJEfPwFRig1KjAYAAA==
+      string: '{"id":"1","name":"Pizza","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"pizza.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -80,18 +95,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:33 GMT
+      - Fri, 22 Apr 2022 08:40:18 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -103,16 +116,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -122,18 +134,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:33 GMT
+      - Fri, 22 Apr 2022 08:40:18 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -145,24 +155,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZKuA+Z5BnbfrdcAhiyxjhp9TaIyBMP++yi3KNIOWIHO
-        OzgHiXzIvKZf/hRGi3bXCC8dilbcRjkdkMjAGGyYPGYUjdCYVTKRTPAc0x22/beQ0IGJubhuf8UH
-        Xbw8g27sNQMSZEMcMPbAfGpABZ+RkArfSM35yvgJ0BpKDWTUoI104IMv7gxokgsaCF1kkvEno4sn
-        KARWjtwAIMFcBcHJyUuQ1nwvZwZgklzsiXcKtkQqcg1fCU6YAmDINVsqVXKNJ7gvmQLowk9tHOd7
-        lJBwLG4Nt9w0KO5TwlFmDVMZMU0JfcPdciUJJI/GSb7P0isqnJ8JLnR64FZBZi3Wf7l7plOXo/SQ
-        6Wzxy16MUh2nFIrXK1X7bCFN47vdzU0D88/m/ee96F9qy6+gUvoLTf6bxlwr9l2xfWdN/1a9GcLZ
-        lbC88I/s/VXtcZlZ3qe9f6n527SupKVmurL+fa4rZaHZrqg/fGDR+Z7/8tN3/9YZn/tcxEsqaSk/
-        qaxXPGX+9tiwU/gxqISSUA9kHGdJF9m6d5vddrXZrbbXsP3Ufti21x85Ohr2q4TDnbE4PC4CtouH
-        RbC+jxPHjDLjkDGd2K+zaLfzUjCJ+c8OfaBBHVAdh3wIMXKwNZlEu2kEnWPdMD4kJ22tmoIuioa6
-        gHyxthGFUXcGreYC9eTXb5+DW9eeBgAA
+      string: '{"id":"2","name":"Spaghetti bolognese","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"spaghetti.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -172,18 +191,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:33 GMT
+      - Fri, 22 Apr 2022 08:40:18 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -195,16 +212,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -214,18 +230,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:34 GMT
+      - Fri, 22 Apr 2022 08:40:18 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -237,24 +251,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7VVTWvcQAz9K2JOLXg3+9EU6rqG3nvLdcHIM4p3svPV+diwlP73atwQkhQaSN2D
-        fRhJT8/PmqcfQivR7hvh0JJoxQ06da/lkZJohKIkow5Ze8eh7rjtv/lIFnRIxXaHKz7owtMz6MZe
-        eeMjJJ05YeyBYXMD0rtEmXLhCCqul9pNQEbn2EAiBUqjBeddsRcgHa1XkMkGRtLurFVxGUoGgyMT
-        AMowdyGwODkENPp7uTAAReRmj3hnb0rIBdfwNcOZogfyqVajlCXV/Ax3JWUPqvBTidMcJ4RIY7Fr
-        uGHSIJknwgmTgqmMFKdIrmG23Akh40lb5HhCJ3Ph+pThiU6/casgsxbrv8Se6dSlgA5Svhj6chAj
-        ytMUfXFqJSvPFuI0vttdXzcwvzbvPx9E/1Jb/gUVpX+iyX/TmHuFvium74zu36o3g3B1RVhe+Afs
-        w1XluMwsH+LBvdT8bVpXpKVmumL9+1xXlIVmu0L94QOLzvf8yY/3/q0zPvNcxEsq0lJ+UrFe8ZT5
-        7rFhR38/yEiYSQ1ZW65CG9i6d5vddrXZrbZ72H5qP2zb/UfODpr9KtJwqw0ND/7PJvbg/+u7MHHS
-        iImGRPHMhp1Eu523go7c4Nmh83ngrSFPQzr6EDjZ6JRFu2lEvoS6WZyPFk1tG70qMg918bhiTCMK
-        Q91qMoob1JOfvwBbCM5klgYAAA==
+      string: '{"id":"3","name":"Sandwiches","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"sandwiches.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -264,18 +287,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:34 GMT
+      - Fri, 22 Apr 2022 08:40:18 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -287,16 +308,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"3","name":"Dinner","sort_number":"30","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -306,18 +326,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:34 GMT
+      - Fri, 22 Apr 2022 08:40:18 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -329,24 +347,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZK2A+Z5BnbfYcCuAQxZYh01+ppEZQiG/fdRXlGkHdAB
-        nXdwDiL5kHlNv/ohjBbtTSO8dCha8UV6JY+YRSM0ZpVMJBM8B7rDtv8cEjowMRfX7a/4oIuXZ9CN
-        vQ42JMiGOGHsgaHUgAo+IyEVjkjN9cr4CdAaSg1k1KCNdOCDL+4MaJILGghdZJLxJ6OLJygEVo48
-        ACDB3AXByclLkNZ8K2cGYJLc7JF3CrZEKnINnwhOmAJgyLVaKlVyzSe4L5kC6MJPHRznOEpIOBa3
-        hq88NCieU8JRZg1TGTFNCX3D03InCSSPxkmOZxaOCtdnggudfnOrILMW6xdiT3TqcpQeMp0tftyL
-        UarjlELxeqXqnC2kaXyzu71tYP7ZvP2wF/1zbfkVVEp/ocl/05h7xb4rtu+s6V+rN0O4uhKWF/6B
-        vb+qMy6zy/u09881f53WlbTUTlfWv+91pSy02xX1hw8sut/zX3787l+74/Oci3hJJS3lJ5X1F0+Z
-        vz027BS+DyqhJNQDGcdV0kW27t1mt11tdqvtNWzftzfb9vodZ0fDfpVwuDMWhwf3Z7eY3X99HydO
-        GWXGIWM6sV1n0W7nO8Ekxj859IEGdUB1HPIhxMjJ1mQS7aYRdI71VvEhOWlr0xR0UTTUS8cXaxtR
-        GHVn0GpuUE9+/gJlZaYokgYAAA==
+      string: '{"id":"4","name":"Pancakes","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"pancakes.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -356,18 +383,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:34 GMT
+      - Fri, 22 Apr 2022 08:40:18 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -379,16 +404,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -398,18 +422,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:34 GMT
+      - Fri, 22 Apr 2022 08:40:18 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -421,24 +443,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/recipes/1
+    uri: https://localhost/api/objects/recipes/2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/TQBCG/8rIJ5CcNE4pEsZY4s4Biasla7w7dbbZL/YjKEX8d2ZNVbVFAimY
-        g3OY2Xlm8nr87vdKyapt6sqioaqtPqv7e6zqSlIUQfmknOVod2j6Ty6QAeVjNt1wxYHOP41BN/XS
-        aRcgqsQHph6YmGoQzkZKlDJnUHK9UHYG0iqFGiJJkAoNWGezOQOpYJyERMYzSdmTktkmyAk0TjwA
-        UIKlC4HB2SKgVl/zmQEUkJs98k5OZ58ybuFjghMFB+RiqUYhciznE9zlmBzIzE8ZnJY8IQSastnC
-        Fx4aBM+JcMQoYc4ThTmQrXla7oSQ8KgMcj6iFSlzfUzwRKdf3CLIosX2D7lnOnXRo4WYzpo+DNWE
-        4jgHl63ciDJnC2GeXu1vbmpYfnav3w9V/1JbfgWF0j/R5L9pzL1832Xdd1r1l+rNEK4uhPWFf2AP
-        V2XGdXZ5CIN9qfllWhfSWjtdWP++14Wy0m4X1G8+sOp+L3/58bu/dMeXOVfxkkJay08K6y+esnx7
-        bNjBfRtFIEwkx6QMV6HxbN373b7Z7Pab5hqad+2bpr1+y6e9Yr8KNN4qTeOD9fti/ds7P3N+wkhj
-        pHBir47L/cAXggrMfha0Lo3iQOI4xoPzng9rFVPV7uoqnX25T6wLBnXpGJzMIo3lurFZ67rKjLpV
-        pCU3KJEfPwFRig1KjAYAAA==
+      string: '{"id":"2","name":"Spaghetti bolognese","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"spaghetti.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -448,18 +479,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:34 GMT
+      - Fri, 22 Apr 2022 08:40:18 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -471,16 +500,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -490,18 +518,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:34 GMT
+      - Fri, 22 Apr 2022 08:40:18 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -513,24 +539,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/recipes/2
+    uri: https://localhost/api/objects/recipes/1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZKuA+Z5BnbfrdcAhiyxjhp9TaIyBMP++yi3KNIOWIHO
-        OzgHiXzIvKZf/hRGi3bXCC8dilbcRjkdkMjAGGyYPGYUjdCYVTKRTPAc0x22/beQ0IGJubhuf8UH
-        Xbw8g27sNQMSZEMcMPbAfGpABZ+RkArfSM35yvgJ0BpKDWTUoI104IMv7gxokgsaCF1kkvEno4sn
-        KARWjtwAIMFcBcHJyUuQ1nwvZwZgklzsiXcKtkQqcg1fCU6YAmDINVsqVXKNJ7gvmQLowk9tHOd7
-        lJBwLG4Nt9w0KO5TwlFmDVMZMU0JfcPdciUJJI/GSb7P0isqnJ8JLnR64FZBZi3Wf7l7plOXo/SQ
-        6Wzxy16MUh2nFIrXK1X7bCFN47vdzU0D88/m/ee96F9qy6+gUvoLTf6bxlwr9l2xfWdN/1a9GcLZ
-        lbC88I/s/VXtcZlZ3qe9f6n527SupKVmurL+fa4rZaHZrqg/fGDR+Z7/8tN3/9YZn/tcxEsqaSk/
-        qaxXPGX+9tiwU/gxqISSUA9kHGdJF9m6d5vddrXZrbbXsP3Ufti21x85Ohr2q4TDnbE4PC4CtouH
-        RbC+jxPHjDLjkDGd2K+zaLfzUjCJ+c8OfaBBHVAdh3wIMXKwNZlEu2kEnWPdMD4kJ22tmoIuioa6
-        gHyxthGFUXcGreYC9eTXb5+DW9eeBgAA
+      string: '{"id":"1","name":"Pizza","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"pizza.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -540,18 +575,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:34 GMT
+      - Fri, 22 Apr 2022 08:40:18 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -563,16 +596,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -582,18 +614,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:34 GMT
+      - Fri, 22 Apr 2022 08:40:19 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -605,24 +635,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZK2A+Z5BnbfYcCuAQxZYh01+ppEZQiG/fdRXlGkHdAB
-        nXdwDiL5kHlNv/ohjBbtTSO8dCha8UV6JY+YRSM0ZpVMJBM8B7rDtv8cEjowMRfX7a/4oIuXZ9CN
-        vQ42JMiGOGHsgaHUgAo+IyEVjkjN9cr4CdAaSg1k1KCNdOCDL+4MaJILGghdZJLxJ6OLJygEVo48
-        ACDB3AXByclLkNZ8K2cGYJLc7JF3CrZEKnINnwhOmAJgyLVaKlVyzSe4L5kC6MJPHRznOEpIOBa3
-        hq88NCieU8JRZg1TGTFNCX3D03InCSSPxkmOZxaOCtdnggudfnOrILMW6xdiT3TqcpQeMp0tftyL
-        UarjlELxeqXqnC2kaXyzu71tYP7ZvP2wF/1zbfkVVEp/ocl/05h7xb4rtu+s6V+rN0O4uhKWF/6B
-        vb+qMy6zy/u09881f53WlbTUTlfWv+91pSy02xX1hw8sut/zX3787l+74/Oci3hJJS3lJ5X1F0+Z
-        vz027BS+DyqhJNQDGcdV0kW27t1mt11tdqvtNWzftzfb9vodZ0fDfpVwuDMWhwf3Z7eY3X99HydO
-        GWXGIWM6sV1n0W7nO8Ekxj859IEGdUB1HPIhxMjJ1mQS7aYRdI71VvEhOWlr0xR0UTTUS8cXaxtR
-        GHVn0GpuUE9+/gJlZaYokgYAAA==
+      string: '{"id":"4","name":"Pancakes","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"pancakes.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -632,18 +671,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:34 GMT
+      - Fri, 22 Apr 2022 08:40:19 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -655,16 +692,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -674,18 +710,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:35 GMT
+      - Fri, 22 Apr 2022 08:40:19 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -697,16 +731,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -716,18 +749,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:35 GMT
+      - Fri, 22 Apr 2022 08:40:19 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -739,24 +770,54 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/recipes/2
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D3
+  response:
+    body:
+      string: '[{"id":"3","name":"Dinner","sort_number":"30","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
+    headers:
+      Access-Control-Allow-Headers:
+      - '*'
+      Access-Control-Allow-Methods:
+      - GET, POST, PUT, DELETE, OPTIONS
+      Access-Control-Allow-Origin:
+      - '*'
+      Connection:
+      - keep-alive
+      Content-Type:
+      - application/json
+      Date:
+      - Fri, 22 Apr 2022 08:40:19 GMT
+      Server:
+      - nginx/1.20.2
+      Transfer-Encoding:
+      - chunked
+      X-Powered-By:
+      - PHP/8.0.13
+    status:
+      code: 200
+      message: OK
+- request:
+    body: null
+    headers:
+      Accept-Encoding:
+      - gzip, deflate
+      Connection:
+      - keep-alive
+      User-Agent:
+      - python-requests/2.27.1
+      accept:
+      - application/json
+    method: GET
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZKuA+Z5BnbfrdcAhiyxjhp9TaIyBMP++yi3KNIOWIHO
-        OzgHiXzIvKZf/hRGi3bXCC8dilbcRjkdkMjAGGyYPGYUjdCYVTKRTPAc0x22/beQ0IGJubhuf8UH
-        Xbw8g27sNQMSZEMcMPbAfGpABZ+RkArfSM35yvgJ0BpKDWTUoI104IMv7gxokgsaCF1kkvEno4sn
-        KARWjtwAIMFcBcHJyUuQ1nwvZwZgklzsiXcKtkQqcg1fCU6YAmDINVsqVXKNJ7gvmQLowk9tHOd7
-        lJBwLG4Nt9w0KO5TwlFmDVMZMU0JfcPdciUJJI/GSb7P0isqnJ8JLnR64FZBZi3Wf7l7plOXo/SQ
-        6Wzxy16MUh2nFIrXK1X7bCFN47vdzU0D88/m/ee96F9qy6+gUvoLTf6bxlwr9l2xfWdN/1a9GcLZ
-        lbC88I/s/VXtcZlZ3qe9f6n527SupKVmurL+fa4rZaHZrqg/fGDR+Z7/8tN3/9YZn/tcxEsqaSk/
-        qaxXPGX+9tiwU/gxqISSUA9kHGdJF9m6d5vddrXZrbbXsP3Ufti21x85Ohr2q4TDnbE4PC4CtouH
-        RbC+jxPHjDLjkDGd2K+zaLfzUjCJ+c8OfaBBHVAdh3wIMXKwNZlEu2kEnWPdMD4kJ22tmoIuioa6
-        gHyxthGFUXcGreYC9eTXb5+DW9eeBgAA
+      string: '[{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -766,18 +827,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:35 GMT
+      - Fri, 22 Apr 2022 08:40:19 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -789,16 +848,54 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAw3LwQpAQBAG4FfRf15lh8IcvYa0LUZJi3ZHDvLunL++/sE6g63B7oOA0UXx2+KT
-        wiAdUd1+hVEiuDSIx+2m31Vmp2uQpD6c/6GCbF40OVWZrblqmQjv8AEGfHFxWwAAAA==
+      string: '[{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
+    headers:
+      Access-Control-Allow-Headers:
+      - '*'
+      Access-Control-Allow-Methods:
+      - GET, POST, PUT, DELETE, OPTIONS
+      Access-Control-Allow-Origin:
+      - '*'
+      Connection:
+      - keep-alive
+      Content-Type:
+      - application/json
+      Date:
+      - Fri, 22 Apr 2022 08:40:19 GMT
+      Server:
+      - nginx/1.20.2
+      Transfer-Encoding:
+      - chunked
+      X-Powered-By:
+      - PHP/8.0.13
+    status:
+      code: 200
+      message: OK
+- request:
+    body: null
+    headers:
+      Accept-Encoding:
+      - gzip, deflate
+      Connection:
+      - keep-alive
+      User-Agent:
+      - python-requests/2.27.1
+      accept:
+      - application/json
+    method: GET
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D3
+  response:
+    body:
+      string: '[{"id":"3","name":"Dinner","sort_number":"30","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -808,18 +905,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 18:09:35 GMT
+      - Fri, 22 Apr 2022 08:40:19 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_note.yaml b/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_note.yaml
deleted file mode 100644
index c2c9d19..0000000
--- a/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_note.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-interactions:
-- request:
-    body: null
-    headers:
-      Accept-Encoding:
-      - gzip, deflate
-      Connection:
-      - keep-alive
-      User-Agent:
-      - python-requests/2.26.0
-      accept:
-      - application/json
-    method: GET
-    uri: https://localhost/api/objects/meal_plan
-  response:
-    body:
-      string: !!binary |
-        H4sIAAAAAAAEA9WW22qEMBCGX0VyrZCJutU8R+9KEdG0DayJ1bjLUvruHQ9ss5ttCoXSBrwIw/yT
-        +cgcfHgjsiUcYtLWJ8IJowwSyhJakJiYUy/QNohG4iHeDtUmWM3VKIaDVM/jEkRpgwo17fcx6Qfd
-        To1Z3C8tdacnZQinn06vk+U36GPVDKI2oq2M7MRo6q63koM0gpJnwNMdZtVqhXdirFE0Rmq1BErg
-        PV7RmINW+tFQEAhaeo0G1I+GgkDQMgcN/GgoCAQtd9CYHw2bMxC0nYOW+tHC6bU7By3zo4VTkMU1
-        GrUm5DLRzwU4j/51ln9dkeT+RY4RfnW0if/JJigvOYuEfdN4f1idmFwWQcEp8HzuoZtL7rzjALef
-        vb9RbTXeD57Q6KcJb/2th8P88ghmNL78aNykwxX++AEo0x9inwgAAA==
-    headers:
-      Access-Control-Allow-Headers:
-      - '*'
-      Access-Control-Allow-Methods:
-      - GET, POST, PUT, DELETE, OPTIONS
-      Access-Control-Allow-Origin:
-      - '*'
-      Connection:
-      - keep-alive
-      Content-Encoding:
-      - gzip
-      Content-Type:
-      - application/json
-      Date:
-      - Wed, 25 Aug 2021 11:53:54 GMT
-      Server:
-      - nginx/1.20.1
-      Transfer-Encoding:
-      - chunked
-      X-Powered-By:
-      - PHP/8.0.9
-    status:
-      code: 200
-      message: OK
-version: 1
diff --git a/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_note_and_details.yaml b/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_note_and_details.yaml
index 6f05396..dc25fb7 100644
--- a/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_note_and_details.yaml
+++ b/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_note_and_details.yaml
@@ -7,20 +7,28 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/meal_plan
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA9WW22qEMBCGX0VyrZCJutU8R+9KEdG0DayJ1bjLUvruHQ9ss5ttCoXSBrwIw/yT
-        +cgcfHgjsiUcYtLWJ8IJowwSyhJakJiYUy/QNohG4iHeDtUmWM3VKIaDVM/jEkRpgwo17fcx6Qfd
-        To1Z3C8tdacnZQinn06vk+U36GPVDKI2oq2M7MRo6q63koM0gpJnwNMdZtVqhXdirFE0Rmq1BErg
-        PV7RmINW+tFQEAhaeo0G1I+GgkDQMgcN/GgoCAQtd9CYHw2bMxC0nYOW+tHC6bU7By3zo4VTkMU1
-        GrUm5DLRzwU4j/51ln9dkeT+RY4RfnW0if/JJigvOYuEfdN4f1idmFwWQcEp8HzuoZtL7rzjALef
-        vb9RbTXeD57Q6KcJb/2th8P88ghmNL78aNykwxX++AEo0x9inwgAAA==
+      string: '[{"id":"1","day":"2022-04-18","type":"recipe","recipe_id":"1","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"2","day":"2022-04-19","type":"recipe","recipe_id":"2","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"3","day":"2022-04-20","type":"recipe","recipe_id":"3","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"3"},{"id":"4","day":"2022-04-21","type":"recipe","recipe_id":"4","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"5","day":"2022-04-22","type":"recipe","recipe_id":"2","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"6","day":"2022-04-23","type":"recipe","recipe_id":"1","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"7","day":"2022-04-24","type":"recipe","recipe_id":"4","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"8","day":"2022-04-19","type":"note","recipe_id":null,"recipe_servings":"1","note":"This
+        is a note","product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"9","day":"2022-04-17","type":"product","recipe_id":null,"recipe_servings":"1","note":null,"product_id":"3","product_amount":"1.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"3"},{"id":"10","day":"2022-04-18","type":"product","recipe_id":null,"recipe_servings":"1","note":null,"product_id":"9","product_amount":"1.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"11","day":"2022-04-20","type":"product","recipe_id":null,"recipe_servings":"1","note":null,"product_id":"25","product_amount":"1.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"12","day":"2022-04-23","type":"note","recipe_id":null,"recipe_servings":"1","note":"Some
+        good snacks","product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"3"}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -30,18 +38,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:40 GMT
+      - Fri, 22 Apr 2022 08:40:19 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -53,24 +59,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/TQBCG/8rIJ5CcNE4pEsZY4s4Biasla7w7dbbZL/YjKEX8d2ZNVbVFAimY
-        g3OY2Xlm8nr87vdKyapt6sqioaqtPqv7e6zqSlIUQfmknOVod2j6Ty6QAeVjNt1wxYHOP41BN/XS
-        aRcgqsQHph6YmGoQzkZKlDJnUHK9UHYG0iqFGiJJkAoNWGezOQOpYJyERMYzSdmTktkmyAk0TjwA
-        UIKlC4HB2SKgVl/zmQEUkJs98k5OZ58ybuFjghMFB+RiqUYhciznE9zlmBzIzE8ZnJY8IQSastnC
-        Fx4aBM+JcMQoYc4ThTmQrXla7oSQ8KgMcj6iFSlzfUzwRKdf3CLIosX2D7lnOnXRo4WYzpo+DNWE
-        4jgHl63ciDJnC2GeXu1vbmpYfnav3w9V/1JbfgWF0j/R5L9pzL1832Xdd1r1l+rNEK4uhPWFf2AP
-        V2XGdXZ5CIN9qfllWhfSWjtdWP++14Wy0m4X1G8+sOp+L3/58bu/dMeXOVfxkkJay08K6y+esnx7
-        bNjBfRtFIEwkx6QMV6HxbN373b7Z7Pab5hqad+2bpr1+y6e9Yr8KNN4qTeOD9fti/ds7P3N+wkhj
-        pHBir47L/cAXggrMfha0Lo3iQOI4xoPzng9rFVPV7uoqnX25T6wLBnXpGJzMIo3lurFZ67rKjLpV
-        pCU3KJEfPwFRig1KjAYAAA==
+      string: '{"id":"1","name":"Pizza","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"pizza.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -80,18 +95,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:40 GMT
+      - Fri, 22 Apr 2022 08:40:19 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -103,16 +116,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -122,18 +134,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:40 GMT
+      - Fri, 22 Apr 2022 08:40:19 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -145,24 +155,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZKuA+Z5BnbfrdcAhiyxjhp9TaIyBMP++yi3KNIOWIHO
-        OzgHiXzIvKZf/hRGi3bXCC8dilbcRjkdkMjAGGyYPGYUjdCYVTKRTPAc0x22/beQ0IGJubhuf8UH
-        Xbw8g27sNQMSZEMcMPbAfGpABZ+RkArfSM35yvgJ0BpKDWTUoI104IMv7gxokgsaCF1kkvEno4sn
-        KARWjtwAIMFcBcHJyUuQ1nwvZwZgklzsiXcKtkQqcg1fCU6YAmDINVsqVXKNJ7gvmQLowk9tHOd7
-        lJBwLG4Nt9w0KO5TwlFmDVMZMU0JfcPdciUJJI/GSb7P0isqnJ8JLnR64FZBZi3Wf7l7plOXo/SQ
-        6Wzxy16MUh2nFIrXK1X7bCFN47vdzU0D88/m/ee96F9qy6+gUvoLTf6bxlwr9l2xfWdN/1a9GcLZ
-        lbC88I/s/VXtcZlZ3qe9f6n527SupKVmurL+fa4rZaHZrqg/fGDR+Z7/8tN3/9YZn/tcxEsqaSk/
-        qaxXPGX+9tiwU/gxqISSUA9kHGdJF9m6d5vddrXZrbbXsP3Ufti21x85Ohr2q4TDnbE4PC4CtouH
-        RbC+jxPHjDLjkDGd2K+zaLfzUjCJ+c8OfaBBHVAdh3wIMXKwNZlEu2kEnWPdMD4kJ22tmoIuioa6
-        gHyxthGFUXcGreYC9eTXb5+DW9eeBgAA
+      string: '{"id":"2","name":"Spaghetti bolognese","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"spaghetti.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -172,18 +191,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:40 GMT
+      - Fri, 22 Apr 2022 08:40:19 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -195,16 +212,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -214,18 +230,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:40 GMT
+      - Fri, 22 Apr 2022 08:40:19 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -237,24 +251,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7VVTWvcQAz9K2JOLXg3+9EU6rqG3nvLdcHIM4p3svPV+diwlP73atwQkhQaSN2D
-        fRhJT8/PmqcfQivR7hvh0JJoxQ06da/lkZJohKIkow5Ze8eh7rjtv/lIFnRIxXaHKz7owtMz6MZe
-        eeMjJJ05YeyBYXMD0rtEmXLhCCqul9pNQEbn2EAiBUqjBeddsRcgHa1XkMkGRtLurFVxGUoGgyMT
-        AMowdyGwODkENPp7uTAAReRmj3hnb0rIBdfwNcOZogfyqVajlCXV/Ax3JWUPqvBTidMcJ4RIY7Fr
-        uGHSIJknwgmTgqmMFKdIrmG23Akh40lb5HhCJ3Ph+pThiU6/casgsxbrv8Se6dSlgA5Svhj6chAj
-        ytMUfXFqJSvPFuI0vttdXzcwvzbvPx9E/1Jb/gUVpX+iyX/TmHuFvium74zu36o3g3B1RVhe+Afs
-        w1XluMwsH+LBvdT8bVpXpKVmumL9+1xXlIVmu0L94QOLzvf8yY/3/q0zPvNcxEsq0lJ+UrFe8ZT5
-        7rFhR38/yEiYSQ1ZW65CG9i6d5vddrXZrbZ72H5qP2zb/UfODpr9KtJwqw0ND/7PJvbg/+u7MHHS
-        iImGRPHMhp1Eu523go7c4Nmh83ngrSFPQzr6EDjZ6JRFu2lEvoS6WZyPFk1tG70qMg918bhiTCMK
-        Q91qMoob1JOfvwBbCM5klgYAAA==
+      string: '{"id":"3","name":"Sandwiches","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"sandwiches.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -264,18 +287,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:40 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -287,16 +308,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"3","name":"Dinner","sort_number":"30","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -306,18 +326,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:40 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -329,24 +347,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZK2A+Z5BnbfYcCuAQxZYh01+ppEZQiG/fdRXlGkHdAB
-        nXdwDiL5kHlNv/ohjBbtTSO8dCha8UV6JY+YRSM0ZpVMJBM8B7rDtv8cEjowMRfX7a/4oIuXZ9CN
-        vQ42JMiGOGHsgaHUgAo+IyEVjkjN9cr4CdAaSg1k1KCNdOCDL+4MaJILGghdZJLxJ6OLJygEVo48
-        ACDB3AXByclLkNZ8K2cGYJLc7JF3CrZEKnINnwhOmAJgyLVaKlVyzSe4L5kC6MJPHRznOEpIOBa3
-        hq88NCieU8JRZg1TGTFNCX3D03InCSSPxkmOZxaOCtdnggudfnOrILMW6xdiT3TqcpQeMp0tftyL
-        UarjlELxeqXqnC2kaXyzu71tYP7ZvP2wF/1zbfkVVEp/ocl/05h7xb4rtu+s6V+rN0O4uhKWF/6B
-        vb+qMy6zy/u09881f53WlbTUTlfWv+91pSy02xX1hw8sut/zX3787l+74/Oci3hJJS3lJ5X1F0+Z
-        vz027BS+DyqhJNQDGcdV0kW27t1mt11tdqvtNWzftzfb9vodZ0fDfpVwuDMWhwf3Z7eY3X99HydO
-        GWXGIWM6sV1n0W7nO8Ekxj859IEGdUB1HPIhxMjJ1mQS7aYRdI71VvEhOWlr0xR0UTTUS8cXaxtR
-        GHVn0GpuUE9+/gJlZaYokgYAAA==
+      string: '{"id":"4","name":"Pancakes","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"pancakes.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -356,18 +383,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:41 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -379,16 +404,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -398,18 +422,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:41 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -421,24 +443,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/recipes/1
+    uri: https://localhost/api/objects/recipes/2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/TQBCG/8rIJ5CcNE4pEsZY4s4Biasla7w7dbbZL/YjKEX8d2ZNVbVFAimY
-        g3OY2Xlm8nr87vdKyapt6sqioaqtPqv7e6zqSlIUQfmknOVod2j6Ty6QAeVjNt1wxYHOP41BN/XS
-        aRcgqsQHph6YmGoQzkZKlDJnUHK9UHYG0iqFGiJJkAoNWGezOQOpYJyERMYzSdmTktkmyAk0TjwA
-        UIKlC4HB2SKgVl/zmQEUkJs98k5OZ58ybuFjghMFB+RiqUYhciznE9zlmBzIzE8ZnJY8IQSastnC
-        Fx4aBM+JcMQoYc4ThTmQrXla7oSQ8KgMcj6iFSlzfUzwRKdf3CLIosX2D7lnOnXRo4WYzpo+DNWE
-        4jgHl63ciDJnC2GeXu1vbmpYfnav3w9V/1JbfgWF0j/R5L9pzL1832Xdd1r1l+rNEK4uhPWFf2AP
-        V2XGdXZ5CIN9qfllWhfSWjtdWP++14Wy0m4X1G8+sOp+L3/58bu/dMeXOVfxkkJay08K6y+esnx7
-        bNjBfRtFIEwkx6QMV6HxbN373b7Z7Pab5hqad+2bpr1+y6e9Yr8KNN4qTeOD9fti/ds7P3N+wkhj
-        pHBir47L/cAXggrMfha0Lo3iQOI4xoPzng9rFVPV7uoqnX25T6wLBnXpGJzMIo3lurFZ67rKjLpV
-        pCU3KJEfPwFRig1KjAYAAA==
+      string: '{"id":"2","name":"Spaghetti bolognese","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"spaghetti.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -448,18 +479,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:41 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -471,16 +500,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -490,18 +518,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:41 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -513,24 +539,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/recipes/2
+    uri: https://localhost/api/objects/recipes/1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZKuA+Z5BnbfrdcAhiyxjhp9TaIyBMP++yi3KNIOWIHO
-        OzgHiXzIvKZf/hRGi3bXCC8dilbcRjkdkMjAGGyYPGYUjdCYVTKRTPAc0x22/beQ0IGJubhuf8UH
-        Xbw8g27sNQMSZEMcMPbAfGpABZ+RkArfSM35yvgJ0BpKDWTUoI104IMv7gxokgsaCF1kkvEno4sn
-        KARWjtwAIMFcBcHJyUuQ1nwvZwZgklzsiXcKtkQqcg1fCU6YAmDINVsqVXKNJ7gvmQLowk9tHOd7
-        lJBwLG4Nt9w0KO5TwlFmDVMZMU0JfcPdciUJJI/GSb7P0isqnJ8JLnR64FZBZi3Wf7l7plOXo/SQ
-        6Wzxy16MUh2nFIrXK1X7bCFN47vdzU0D88/m/ee96F9qy6+gUvoLTf6bxlwr9l2xfWdN/1a9GcLZ
-        lbC88I/s/VXtcZlZ3qe9f6n527SupKVmurL+fa4rZaHZrqg/fGDR+Z7/8tN3/9YZn/tcxEsqaSk/
-        qaxXPGX+9tiwU/gxqISSUA9kHGdJF9m6d5vddrXZrbbXsP3Ufti21x85Ohr2q4TDnbE4PC4CtouH
-        RbC+jxPHjDLjkDGd2K+zaLfzUjCJ+c8OfaBBHVAdh3wIMXKwNZlEu2kEnWPdMD4kJ22tmoIuioa6
-        gHyxthGFUXcGreYC9eTXb5+DW9eeBgAA
+      string: '{"id":"1","name":"Pizza","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"pizza.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -540,18 +575,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:41 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -563,16 +596,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -582,18 +614,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:41 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -605,24 +635,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZK2A+Z5BnbfYcCuAQxZYh01+ppEZQiG/fdRXlGkHdAB
-        nXdwDiL5kHlNv/ohjBbtTSO8dCha8UV6JY+YRSM0ZpVMJBM8B7rDtv8cEjowMRfX7a/4oIuXZ9CN
-        vQ42JMiGOGHsgaHUgAo+IyEVjkjN9cr4CdAaSg1k1KCNdOCDL+4MaJILGghdZJLxJ6OLJygEVo48
-        ACDB3AXByclLkNZ8K2cGYJLc7JF3CrZEKnINnwhOmAJgyLVaKlVyzSe4L5kC6MJPHRznOEpIOBa3
-        hq88NCieU8JRZg1TGTFNCX3D03InCSSPxkmOZxaOCtdnggudfnOrILMW6xdiT3TqcpQeMp0tftyL
-        UarjlELxeqXqnC2kaXyzu71tYP7ZvP2wF/1zbfkVVEp/ocl/05h7xb4rtu+s6V+rN0O4uhKWF/6B
-        vb+qMy6zy/u09881f53WlbTUTlfWv+91pSy02xX1hw8sut/zX3787l+74/Oci3hJJS3lJ5X1F0+Z
-        vz027BS+DyqhJNQDGcdV0kW27t1mt11tdqvtNWzftzfb9vodZ0fDfpVwuDMWhwf3Z7eY3X99HydO
-        GWXGIWM6sV1n0W7nO8Ekxj859IEGdUB1HPIhxMjJ1mQS7aYRdI71VvEhOWlr0xR0UTTUS8cXaxtR
-        GHVn0GpuUE9+/gJlZaYokgYAAA==
+      string: '{"id":"4","name":"Pancakes","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"pancakes.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -632,18 +671,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:41 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -655,16 +692,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -674,18 +710,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:41 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -697,16 +731,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -716,18 +749,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:41 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -739,24 +770,54 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/recipes/2
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D3
+  response:
+    body:
+      string: '[{"id":"3","name":"Dinner","sort_number":"30","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
+    headers:
+      Access-Control-Allow-Headers:
+      - '*'
+      Access-Control-Allow-Methods:
+      - GET, POST, PUT, DELETE, OPTIONS
+      Access-Control-Allow-Origin:
+      - '*'
+      Connection:
+      - keep-alive
+      Content-Type:
+      - application/json
+      Date:
+      - Fri, 22 Apr 2022 08:40:20 GMT
+      Server:
+      - nginx/1.20.2
+      Transfer-Encoding:
+      - chunked
+      X-Powered-By:
+      - PHP/8.0.13
+    status:
+      code: 200
+      message: OK
+- request:
+    body: null
+    headers:
+      Accept-Encoding:
+      - gzip, deflate
+      Connection:
+      - keep-alive
+      User-Agent:
+      - python-requests/2.27.1
+      accept:
+      - application/json
+    method: GET
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZKuA+Z5BnbfrdcAhiyxjhp9TaIyBMP++yi3KNIOWIHO
-        OzgHiXzIvKZf/hRGi3bXCC8dilbcRjkdkMjAGGyYPGYUjdCYVTKRTPAc0x22/beQ0IGJubhuf8UH
-        Xbw8g27sNQMSZEMcMPbAfGpABZ+RkArfSM35yvgJ0BpKDWTUoI104IMv7gxokgsaCF1kkvEno4sn
-        KARWjtwAIMFcBcHJyUuQ1nwvZwZgklzsiXcKtkQqcg1fCU6YAmDINVsqVXKNJ7gvmQLowk9tHOd7
-        lJBwLG4Nt9w0KO5TwlFmDVMZMU0JfcPdciUJJI/GSb7P0isqnJ8JLnR64FZBZi3Wf7l7plOXo/SQ
-        6Wzxy16MUh2nFIrXK1X7bCFN47vdzU0D88/m/ee96F9qy6+gUvoLTf6bxlwr9l2xfWdN/1a9GcLZ
-        lbC88I/s/VXtcZlZ3qe9f6n527SupKVmurL+fa4rZaHZrqg/fGDR+Z7/8tN3/9YZn/tcxEsqaSk/
-        qaxXPGX+9tiwU/gxqISSUA9kHGdJF9m6d5vddrXZrbbXsP3Ufti21x85Ohr2q4TDnbE4PC4CtouH
-        RbC+jxPHjDLjkDGd2K+zaLfzUjCJ+c8OfaBBHVAdh3wIMXKwNZlEu2kEnWPdMD4kJ22tmoIuioa6
-        gHyxthGFUXcGreYC9eTXb5+DW9eeBgAA
+      string: '[{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -766,18 +827,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:41 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -789,16 +848,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAw3LwQpAQBAG4FfRf15lh8IcvYa0LUZJi3ZHDvLunL++/sE6g63B7oOA0UXx2+KT
-        wiAdUd1+hVEiuDSIx+2m31Vmp2uQpD6c/6GCbF40OVWZrblqmQjv8AEGfHFxWwAAAA==
+      string: '[{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -808,18 +866,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:42 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -831,16 +887,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"3","name":"Dinner","sort_number":"30","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -850,18 +905,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 11:55:42 GMT
+      - Fri, 22 Apr 2022 08:40:20 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_product.yaml b/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_product.yaml
index 7101807..6bb6cba 100644
--- a/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_product.yaml
+++ b/test/cassettes/test_meal_plan/TestMealPlan.test_get_meal_plan_with_product.yaml
@@ -7,21 +7,28 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/meal_plan
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA9WW22qEMBCGX0VyrZDxVM1z9K4UEU1bYTVWY8tS9t078XzYpqVQugEvwpBJ5jMz
-        88/DBylywsAmeXomjLjUBYe6Do2ITeS55mhreFbgwh4XyegwmJOWN29F9dz2h1RCokfVnU42qRuR
-        d5nst28taSm6ShJGl02v3WpfI96TrOGp5Hkii5K3Mi3rVXDgWRAzH5gXYlS5qPBOPKvlmSxE1R/k
-        wMUe0NwDWqxHQwdD0Lw9GlA9GjoYguYf0ECPhg6GoAUHNFePhsVpCFp4QPP0aObU2t0BzdejmZOQ
-        0R6Nrjpk39HnBFStf+jlX2ckuX8pWgu/1Bqdb0QJ4i1n5LjfFN4/ZicG51sQMQosUDV0VeRmjQNU
-        v7V+o/eq8H7xhFI8dXjrXz0cxhdYoNBYP2hcpVskHHbjifo5S/GNQaJhzMmfJOl2IFEeWK8T7jSf
-        4LWTaZxPlIBqh5OZLGSgFOsqGVwePwG8geHkeAkAAA==
+      string: '[{"id":"1","day":"2022-04-18","type":"recipe","recipe_id":"1","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"2","day":"2022-04-19","type":"recipe","recipe_id":"2","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"3","day":"2022-04-20","type":"recipe","recipe_id":"3","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"3"},{"id":"4","day":"2022-04-21","type":"recipe","recipe_id":"4","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"5","day":"2022-04-22","type":"recipe","recipe_id":"2","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"6","day":"2022-04-23","type":"recipe","recipe_id":"1","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"7","day":"2022-04-24","type":"recipe","recipe_id":"4","recipe_servings":"1","note":null,"product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"2"},{"id":"8","day":"2022-04-19","type":"note","recipe_id":null,"recipe_servings":"1","note":"This
+        is a note","product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"9","day":"2022-04-17","type":"product","recipe_id":null,"recipe_servings":"1","note":null,"product_id":"3","product_amount":"1.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"3"},{"id":"10","day":"2022-04-18","type":"product","recipe_id":null,"recipe_servings":"1","note":null,"product_id":"9","product_amount":"1.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"11","day":"2022-04-20","type":"product","recipe_id":null,"recipe_servings":"1","note":null,"product_id":"25","product_amount":"1.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"1"},{"id":"12","day":"2022-04-23","type":"note","recipe_id":null,"recipe_servings":"1","note":"Some
+        good snacks","product_id":null,"product_amount":"0.0","product_qu_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","done":"0","section_id":"3"}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -31,18 +38,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:21 GMT
+      - Fri, 22 Apr 2022 08:40:21 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -54,24 +59,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/TQBCG/8rIJ5CcNE4pEsZY4s4Biasla7w7dbbZL/YjKEX8d2ZNVbVFAimY
-        g3OY2Xlm8nr87vdKyapt6sqioaqtPqv7e6zqSlIUQfmknOVod2j6Ty6QAeVjNt1wxYHOP41BN/XS
-        aRcgqsQHph6YmGoQzkZKlDJnUHK9UHYG0iqFGiJJkAoNWGezOQOpYJyERMYzSdmTktkmyAk0TjwA
-        UIKlC4HB2SKgVl/zmQEUkJs98k5OZ58ybuFjghMFB+RiqUYhciznE9zlmBzIzE8ZnJY8IQSastnC
-        Fx4aBM+JcMQoYc4ThTmQrXla7oSQ8KgMcj6iFSlzfUzwRKdf3CLIosX2D7lnOnXRo4WYzpo+DNWE
-        4jgHl63ciDJnC2GeXu1vbmpYfnav3w9V/1JbfgWF0j/R5L9pzL1832Xdd1r1l+rNEK4uhPWFf2AP
-        V2XGdXZ5CIN9qfllWhfSWjtdWP++14Wy0m4X1G8+sOp+L3/58bu/dMeXOVfxkkJay08K6y+esnx7
-        bNjBfRtFIEwkx6QMV6HxbN373b7Z7Pab5hqad+2bpr1+y6e9Yr8KNN4qTeOD9fti/ds7P3N+wkhj
-        pHBir47L/cAXggrMfha0Lo3iQOI4xoPzng9rFVPV7uoqnX25T6wLBnXpGJzMIo3lurFZ67rKjLpV
-        pCU3KJEfPwFRig1KjAYAAA==
+      string: '{"id":"1","name":"Pizza","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"pizza.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -81,18 +95,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:21 GMT
+      - Fri, 22 Apr 2022 08:40:21 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -104,16 +116,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -123,18 +134,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:21 GMT
+      - Fri, 22 Apr 2022 08:40:21 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -146,24 +155,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZKuA+Z5BnbfrdcAhiyxjhp9TaIyBMP++yi3KNIOWIHO
-        OzgHiXzIvKZf/hRGi3bXCC8dilbcRjkdkMjAGGyYPGYUjdCYVTKRTPAc0x22/beQ0IGJubhuf8UH
-        Xbw8g27sNQMSZEMcMPbAfGpABZ+RkArfSM35yvgJ0BpKDWTUoI104IMv7gxokgsaCF1kkvEno4sn
-        KARWjtwAIMFcBcHJyUuQ1nwvZwZgklzsiXcKtkQqcg1fCU6YAmDINVsqVXKNJ7gvmQLowk9tHOd7
-        lJBwLG4Nt9w0KO5TwlFmDVMZMU0JfcPdciUJJI/GSb7P0isqnJ8JLnR64FZBZi3Wf7l7plOXo/SQ
-        6Wzxy16MUh2nFIrXK1X7bCFN47vdzU0D88/m/ee96F9qy6+gUvoLTf6bxlwr9l2xfWdN/1a9GcLZ
-        lbC88I/s/VXtcZlZ3qe9f6n527SupKVmurL+fa4rZaHZrqg/fGDR+Z7/8tN3/9YZn/tcxEsqaSk/
-        qaxXPGX+9tiwU/gxqISSUA9kHGdJF9m6d5vddrXZrbbXsP3Ufti21x85Ohr2q4TDnbE4PC4CtouH
-        RbC+jxPHjDLjkDGd2K+zaLfzUjCJ+c8OfaBBHVAdh3wIMXKwNZlEu2kEnWPdMD4kJ22tmoIuioa6
-        gHyxthGFUXcGreYC9eTXb5+DW9eeBgAA
+      string: '{"id":"2","name":"Spaghetti bolognese","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"spaghetti.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -173,18 +191,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:21 GMT
+      - Fri, 22 Apr 2022 08:40:21 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -196,16 +212,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -215,18 +230,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:21 GMT
+      - Fri, 22 Apr 2022 08:40:21 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -238,24 +251,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7VVTWvcQAz9K2JOLXg3+9EU6rqG3nvLdcHIM4p3svPV+diwlP73atwQkhQaSN2D
-        fRhJT8/PmqcfQivR7hvh0JJoxQ06da/lkZJohKIkow5Ze8eh7rjtv/lIFnRIxXaHKz7owtMz6MZe
-        eeMjJJ05YeyBYXMD0rtEmXLhCCqul9pNQEbn2EAiBUqjBeddsRcgHa1XkMkGRtLurFVxGUoGgyMT
-        AMowdyGwODkENPp7uTAAReRmj3hnb0rIBdfwNcOZogfyqVajlCXV/Ax3JWUPqvBTidMcJ4RIY7Fr
-        uGHSIJknwgmTgqmMFKdIrmG23Akh40lb5HhCJ3Ph+pThiU6/casgsxbrv8Se6dSlgA5Svhj6chAj
-        ytMUfXFqJSvPFuI0vttdXzcwvzbvPx9E/1Jb/gUVpX+iyX/TmHuFvium74zu36o3g3B1RVhe+Afs
-        w1XluMwsH+LBvdT8bVpXpKVmumL9+1xXlIVmu0L94QOLzvf8yY/3/q0zPvNcxEsq0lJ+UrFe8ZT5
-        7rFhR38/yEiYSQ1ZW65CG9i6d5vddrXZrbZ72H5qP2zb/UfODpr9KtJwqw0ND/7PJvbg/+u7MHHS
-        iImGRPHMhp1Eu523go7c4Nmh83ngrSFPQzr6EDjZ6JRFu2lEvoS6WZyPFk1tG70qMg918bhiTCMK
-        Q91qMoob1JOfvwBbCM5klgYAAA==
+      string: '{"id":"3","name":"Sandwiches","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"sandwiches.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -265,18 +287,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:21 GMT
+      - Fri, 22 Apr 2022 08:40:21 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -288,16 +308,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"3","name":"Dinner","sort_number":"30","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -307,18 +326,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:22 GMT
+      - Fri, 22 Apr 2022 08:40:21 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -330,24 +347,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZK2A+Z5BnbfYcCuAQxZYh01+ppEZQiG/fdRXlGkHdAB
-        nXdwDiL5kHlNv/ohjBbtTSO8dCha8UV6JY+YRSM0ZpVMJBM8B7rDtv8cEjowMRfX7a/4oIuXZ9CN
-        vQ42JMiGOGHsgaHUgAo+IyEVjkjN9cr4CdAaSg1k1KCNdOCDL+4MaJILGghdZJLxJ6OLJygEVo48
-        ACDB3AXByclLkNZ8K2cGYJLc7JF3CrZEKnINnwhOmAJgyLVaKlVyzSe4L5kC6MJPHRznOEpIOBa3
-        hq88NCieU8JRZg1TGTFNCX3D03InCSSPxkmOZxaOCtdnggudfnOrILMW6xdiT3TqcpQeMp0tftyL
-        UarjlELxeqXqnC2kaXyzu71tYP7ZvP2wF/1zbfkVVEp/ocl/05h7xb4rtu+s6V+rN0O4uhKWF/6B
-        vb+qMy6zy/u09881f53WlbTUTlfWv+91pSy02xX1hw8sut/zX3787l+74/Oci3hJJS3lJ5X1F0+Z
-        vz027BS+DyqhJNQDGcdV0kW27t1mt11tdqvtNWzftzfb9vodZ0fDfpVwuDMWhwf3Z7eY3X99HydO
-        GWXGIWM6sV1n0W7nO8Ekxj859IEGdUB1HPIhxMjJ1mQS7aYRdI71VvEhOWlr0xR0UTTUS8cXaxtR
-        GHVn0GpuUE9+/gJlZaYokgYAAA==
+      string: '{"id":"4","name":"Pancakes","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"pancakes.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -357,18 +383,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:22 GMT
+      - Fri, 22 Apr 2022 08:40:21 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -380,16 +404,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -399,18 +422,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:22 GMT
+      - Fri, 22 Apr 2022 08:40:21 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -422,24 +443,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/recipes/1
+    uri: https://localhost/api/objects/recipes/2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/TQBCG/8rIJ5CcNE4pEsZY4s4Biasla7w7dbbZL/YjKEX8d2ZNVbVFAimY
-        g3OY2Xlm8nr87vdKyapt6sqioaqtPqv7e6zqSlIUQfmknOVod2j6Ty6QAeVjNt1wxYHOP41BN/XS
-        aRcgqsQHph6YmGoQzkZKlDJnUHK9UHYG0iqFGiJJkAoNWGezOQOpYJyERMYzSdmTktkmyAk0TjwA
-        UIKlC4HB2SKgVl/zmQEUkJs98k5OZ58ybuFjghMFB+RiqUYhciznE9zlmBzIzE8ZnJY8IQSastnC
-        Fx4aBM+JcMQoYc4ThTmQrXla7oSQ8KgMcj6iFSlzfUzwRKdf3CLIosX2D7lnOnXRo4WYzpo+DNWE
-        4jgHl63ciDJnC2GeXu1vbmpYfnav3w9V/1JbfgWF0j/R5L9pzL1832Xdd1r1l+rNEK4uhPWFf2AP
-        V2XGdXZ5CIN9qfllWhfSWjtdWP++14Wy0m4X1G8+sOp+L3/58bu/dMeXOVfxkkJay08K6y+esnx7
-        bNjBfRtFIEwkx6QMV6HxbN373b7Z7Pab5hqad+2bpr1+y6e9Yr8KNN4qTeOD9fti/ds7P3N+wkhj
-        pHBir47L/cAXggrMfha0Lo3iQOI4xoPzng9rFVPV7uoqnX25T6wLBnXpGJzMIo3lurFZ67rKjLpV
-        pCU3KJEfPwFRig1KjAYAAA==
+      string: '{"id":"2","name":"Spaghetti bolognese","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"spaghetti.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -449,18 +479,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:22 GMT
+      - Fri, 22 Apr 2022 08:40:21 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -472,16 +500,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -491,18 +518,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:22 GMT
+      - Fri, 22 Apr 2022 08:40:21 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -514,24 +539,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/recipes/2
+    uri: https://localhost/api/objects/recipes/1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZKuA+Z5BnbfrdcAhiyxjhp9TaIyBMP++yi3KNIOWIHO
-        OzgHiXzIvKZf/hRGi3bXCC8dilbcRjkdkMjAGGyYPGYUjdCYVTKRTPAc0x22/beQ0IGJubhuf8UH
-        Xbw8g27sNQMSZEMcMPbAfGpABZ+RkArfSM35yvgJ0BpKDWTUoI104IMv7gxokgsaCF1kkvEno4sn
-        KARWjtwAIMFcBcHJyUuQ1nwvZwZgklzsiXcKtkQqcg1fCU6YAmDINVsqVXKNJ7gvmQLowk9tHOd7
-        lJBwLG4Nt9w0KO5TwlFmDVMZMU0JfcPdciUJJI/GSb7P0isqnJ8JLnR64FZBZi3Wf7l7plOXo/SQ
-        6Wzxy16MUh2nFIrXK1X7bCFN47vdzU0D88/m/ee96F9qy6+gUvoLTf6bxlwr9l2xfWdN/1a9GcLZ
-        lbC88I/s/VXtcZlZ3qe9f6n527SupKVmurL+fa4rZaHZrqg/fGDR+Z7/8tN3/9YZn/tcxEsqaSk/
-        qaxXPGX+9tiwU/gxqISSUA9kHGdJF9m6d5vddrXZrbbXsP3Ufti21x85Ohr2q4TDnbE4PC4CtouH
-        RbC+jxPHjDLjkDGd2K+zaLfzUjCJ+c8OfaBBHVAdh3wIMXKwNZlEu2kEnWPdMD4kJ22tmoIuioa6
-        gHyxthGFUXcGreYC9eTXb5+DW9eeBgAA
+      string: '{"id":"1","name":"Pizza","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"pizza.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -541,18 +575,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:22 GMT
+      - Fri, 22 Apr 2022 08:40:21 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -564,16 +596,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -583,18 +614,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:22 GMT
+      - Fri, 22 Apr 2022 08:40:21 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -606,24 +635,33 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/recipes/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZK2A+Z5BnbfYcCuAQxZYh01+ppEZQiG/fdRXlGkHdAB
-        nXdwDiL5kHlNv/ohjBbtTSO8dCha8UV6JY+YRSM0ZpVMJBM8B7rDtv8cEjowMRfX7a/4oIuXZ9CN
-        vQ42JMiGOGHsgaHUgAo+IyEVjkjN9cr4CdAaSg1k1KCNdOCDL+4MaJILGghdZJLxJ6OLJygEVo48
-        ACDB3AXByclLkNZ8K2cGYJLc7JF3CrZEKnINnwhOmAJgyLVaKlVyzSe4L5kC6MJPHRznOEpIOBa3
-        hq88NCieU8JRZg1TGTFNCX3D03InCSSPxkmOZxaOCtdnggudfnOrILMW6xdiT3TqcpQeMp0tftyL
-        UarjlELxeqXqnC2kaXyzu71tYP7ZvP2wF/1zbfkVVEp/ocl/05h7xb4rtu+s6V+rN0O4uhKWF/6B
-        vb+qMy6zy/u09881f53WlbTUTlfWv+91pSy02xX1hw8sut/zX3787l+74/Oci3hJJS3lJ5X1F0+Z
-        vz027BS+DyqhJNQDGcdV0kW27t1mt11tdqvtNWzftzfb9vodZ0fDfpVwuDMWhwf3Z7eY3X99HydO
-        GWXGIWM6sV1n0W7nO8Ekxj859IEGdUB1HPIhxMjJ1mQS7aYRdI71VvEhOWlr0xR0UTTUS8cXaxtR
-        GHVn0GpuUE9+/gJlZaYokgYAAA==
+      string: '{"id":"4","name":"Pancakes","description":"<h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur sadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+        no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
+        sit amet, consetetur <span style=\"background-color: rgb(255, 255, 0);\">sadipscing
+        elitr<\/span>, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+        magna aliquyam erat, sed diam voluptua.<\/p><ul><li>At vero eos et accusam
+        et justo duo dolores et ea rebum.<\/li><li>Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet.<\/li><\/ul><h1>Lorem ipsum<\/h1><p>Lorem
+        ipsum <b>dolor sit<\/b> amet, consetetur \r\nsadipscing elitr, sed diam nonumy
+        eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam
+        voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet
+        clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit
+        amet. Lorem ipsum dolor sit \r\namet, consetetur <span style=\"background-color:
+        rgb(255, 255, 0);\">sadipscing elitr<\/span>,\r\n sed diam nonumy eirmod tempor
+        invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At
+        vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd
+        gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.<\/p>","row_created_timestamp":"2022-04-22
+        08:37:58","picture_file_name":"pancakes.jpg","base_servings":"1","desired_servings":"1","not_check_shoppinglist":"0","type":"normal","product_id":null,"userfields":null}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -633,18 +671,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:22 GMT
+      - Fri, 22 Apr 2022 08:40:22 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -656,16 +692,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -675,18 +710,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:22 GMT
+      - Fri, 22 Apr 2022 08:40:22 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -698,16 +731,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -717,18 +749,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:22 GMT
+      - Fri, 22 Apr 2022 08:40:22 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -740,24 +770,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/recipes/2
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7WVTW/bMAyG/wqh0wY4aZKuA+Z5BnbfrdcAhiyxjhp9TaIyBMP++yi3KNIOWIHO
-        OzgHiXzIvKZf/hRGi3bXCC8dilbcRjkdkMjAGGyYPGYUjdCYVTKRTPAc0x22/beQ0IGJubhuf8UH
-        Xbw8g27sNQMSZEMcMPbAfGpABZ+RkArfSM35yvgJ0BpKDWTUoI104IMv7gxokgsaCF1kkvEno4sn
-        KARWjtwAIMFcBcHJyUuQ1nwvZwZgklzsiXcKtkQqcg1fCU6YAmDINVsqVXKNJ7gvmQLowk9tHOd7
-        lJBwLG4Nt9w0KO5TwlFmDVMZMU0JfcPdciUJJI/GSb7P0isqnJ8JLnR64FZBZi3Wf7l7plOXo/SQ
-        6Wzxy16MUh2nFIrXK1X7bCFN47vdzU0D88/m/ee96F9qy6+gUvoLTf6bxlwr9l2xfWdN/1a9GcLZ
-        lbC88I/s/VXtcZlZ3qe9f6n527SupKVmurL+fa4rZaHZrqg/fGDR+Z7/8tN3/9YZn/tcxEsqaSk/
-        qaxXPGX+9tiwU/gxqISSUA9kHGdJF9m6d5vddrXZrbbXsP3Ufti21x85Ohr2q4TDnbE4PC4CtouH
-        RbC+jxPHjDLjkDGd2K+zaLfzUjCJ+c8OfaBBHVAdh3wIMXKwNZlEu2kEnWPdMD4kJ22tmoIuioa6
-        gHyxthGFUXcGreYC9eTXb5+DW9eeBgAA
+      string: '[{"id":"3","name":"Dinner","sort_number":"30","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -767,18 +788,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:22 GMT
+      - Fri, 22 Apr 2022 08:40:22 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -790,16 +809,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAw3LwQpAQBAG4FfRf15lh8IcvYa0LUZJi3ZHDvLunL++/sE6g63B7oOA0UXx2+KT
-        wiAdUd1+hVEiuDSIx+2m31Vmp2uQpD6c/6GCbF40OVWZrblqmQjv8AEGfHFxWwAAAA==
+      string: '[{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -809,18 +827,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:22 GMT
+      - Fri, 22 Apr 2022 08:40:22 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -832,16 +848,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D-1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAyXKwQqAIAwA0F+JnRWcXWS/EiGWO3hQYy46RP9e0Pm95YaSgSwaaKkyEICB0UVj
-        O+vG8pP0K+7CSTlHLZWHpnp81zuP1gXr58kFwpkwwLO+Gg7z9FQAAAA=
+      string: '[{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -851,18 +866,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:22 GMT
+      - Fri, 22 Apr 2022 08:40:22 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -874,16 +887,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
+    uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAw3LwQpAQBAG4FfRf15lh8IcvYa0LUZJi3ZHDvLunL++/sE6g63B7oOA0UXx2+KT
-        wiAdUd1+hVEiuDSIx+2m31Vmp2uQpD6c/6GCbF40OVWZrblqmQjv8AEGfHFxWwAAAA==
+      string: '[{"id":"3","name":"Dinner","sort_number":"30","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -893,18 +905,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 25 Aug 2021 12:05:23 GMT
+      - Fri, 22 Apr 2022 08:40:22 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_meal_plan_sections/TestMealPlanSections.test_get_section_by_id_invalid.yaml b/test/cassettes/test_meal_plan_sections/TestMealPlanSections.test_get_section_by_id_invalid.yaml
index edf76ff..0d1027e 100644
--- a/test/cassettes/test_meal_plan_sections/TestMealPlanSections.test_get_section_by_id_invalid.yaml
+++ b/test/cassettes/test_meal_plan_sections/TestMealPlanSections.test_get_section_by_id_invalid.yaml
@@ -7,15 +7,14 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1000
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA4uOBQApu0wNAgAAAA==
+      string: '[]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -25,18 +24,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 17:57:24 GMT
+      - Fri, 22 Apr 2022 08:40:22 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_meal_plan_sections/TestMealPlanSections.test_get_section_by_id_valid.yaml b/test/cassettes/test_meal_plan_sections/TestMealPlanSections.test_get_section_by_id_valid.yaml
index 9287794..edb79dd 100644
--- a/test/cassettes/test_meal_plan_sections/TestMealPlanSections.test_get_section_by_id_valid.yaml
+++ b/test/cassettes/test_meal_plan_sections/TestMealPlanSections.test_get_section_by_id_valid.yaml
@@ -7,16 +7,15 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/meal_plan_sections?query%5B%5D=id%3D1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEAw3LwQpAQBAG4FfRf15lh8IcvYa0LUZJi3ZHDvLunL++/sE6g63B7oOA0UXx2+KT
-        wiAdUd1+hVEiuDSIx+2m31Vmp2uQpD6c/6GCbF40OVWZrblqmQjv8AEGfHFxWwAAAA==
+      string: '[{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -26,18 +25,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 17:57:00 GMT
+      - Fri, 22 Apr 2022 08:40:22 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_meal_plan_sections/TestMealPlanSections.test_get_sections_valid.yaml b/test/cassettes/test_meal_plan_sections/TestMealPlanSections.test_get_sections_valid.yaml
index 904c0e7..ef944ea 100644
--- a/test/cassettes/test_meal_plan_sections/TestMealPlanSections.test_get_sections_valid.yaml
+++ b/test/cassettes/test_meal_plan_sections/TestMealPlanSections.test_get_sections_valid.yaml
@@ -7,17 +7,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/meal_plan_sections
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA4uuVspMUbLSNdRRykvMTVWyUlLSUSrOLyqJzyvNTUotgkgV5ZfHJxelJpakpsSX
-        ZOamFpck5hYA1RoZGBnqGljoGhkrGFhYGRpbGVoo1epAjESY6ATUmZ2WWFyCbrSxjhJBk00UDM2t
-        TCytjIyUamMBqqo+Xq4AAAA=
+      string: '[{"id":"-1","name":"","sort_number":"-1","row_created_timestamp":"2022-04-22
+        08:37:56","time_info":null},{"id":"1","name":"Breakfast","sort_number":"10","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null},{"id":"2","name":"Lunch","sort_number":"20","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null},{"id":"3","name":"Dinner","sort_number":"30","row_created_timestamp":"2022-04-22
+        08:37:58","time_info":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -27,18 +28,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Tue, 24 Aug 2021 17:49:32 GMT
+      - Fri, 22 Apr 2022 08:40:22 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_product/TestProduct.test_add_product_pic_valid.yaml b/test/cassettes/test_product/TestProduct.test_add_product_pic_valid.yaml
index c1a21f1..07e3c09 100644
--- a/test/cassettes/test_product/TestProduct.test_add_product_pic_valid.yaml
+++ b/test/cassettes/test_product/TestProduct.test_add_product_pic_valid.yaml
@@ -11,7 +11,7 @@ interactions:
       Transfer-Encoding:
       - chunked
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - '*/*'
     method: PUT
@@ -31,11 +31,11 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:51 GMT
+      - Fri, 22 Apr 2022 08:40:23 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 204
       message: No Content
@@ -51,7 +51,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - '*/*'
     method: PUT
@@ -71,11 +71,11 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:51 GMT
+      - Fri, 22 Apr 2022 08:40:23 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 204
       message: No Content
diff --git a/test/cassettes/test_product/TestProduct.test_get_all_products.yaml b/test/cassettes/test_product/TestProduct.test_get_all_products.yaml
index e403d8a..7938f2f 100644
--- a/test/cassettes/test_product/TestProduct.test_get_all_products.yaml
+++ b/test/cassettes/test_product/TestProduct.test_get_all_products.yaml
@@ -7,39 +7,57 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/products
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA+2cXW/bNhSG/wqhazewnLZrfTd0HzfrECwFhqEYCFqiZdaUqPDDQTLsv+/VlzUn
-        sSwhhh2lvGgBmRRFHz4+POe8VL7+E4g4mIeTIGMpD+bBJ6XWgptgEsTcRFrkVqgsmGdOykmQaxW7
-        yNJEK5fT+kYWWbHBrRhDqogV/cumt5PArFSeiyyhOw3VWDcOvWjudLRiBrdfToLqI2NVtG6ulxhd
-        6W03ahWt2/G4VGTVFWWpcpkN5h+KaS+Zk5YuuCn+WyrNaczuTDCf7m+kbGm5pirn+K6H+y015/f4
-        Xn362hW7bbrmIrIO81kKyWlt8Kgy+MW3PIHRecYWaLMMvW65SFaWrlgWy2aE/zWUD8+UpdGKR+va
-        EEsnMbhMeWYpvjrVPBI5lrP4UjkGxcfNIhbLVy1FxKTSxaLPwxmWIXKpk8xy+tC+VC2pcYtmhNqk
-        DtO9yysAbpzAVCKVGZfy7apgqVYi5hRglItH1YbrjeC35bS0uqWR5nhgTK1IsWwszUHibDoL30xn
-        b8JLEn6cvw3nl++DfycVr7OW15WKVDFbT+yT2NdkH5HYipmRgQoE43OAip9T/Tv/1aXpHVlwpr1z
-        fdpDHx/VICmMXtrc+9ch/hV7dxMPaGHysRIbdmzlffbuM8QDo/SuhZnP4V3fbTH9OUl6Q4q79sWs
-        iCueE7PidsSwHTErDPUwqOrksLPxfEGrh3RArPp+C+nvSsWyf26FG/dxirDiOZxWuVYHpx7T7y6l
-        +mGL6RVyuAGYAqZ9mMLTDsEUUcdOCaC69piWu4DP/MtKFSo824RKMrMiBqWovrn/8VAF2TuoVtce
-        VY9qW6T6uEX1L5U4bftS2rHvD4xPMdIOpdW1p9RT2lJa5MhNrr/iHKX4okzeo/R/PEyrcBRqwHNK
-        /z7Vf9UV/xAV3AZTJWMSOfso4Q9+g9iTEpFDfSCxgqhBjLAEwpadkEKU4JZDfyGGxegTQVMhXAqr
-        J8TwmMSCpSRTmUOZlgudqphYnuYYRGQbEUNfIs4SyRZ4COG2egAnKUsyRpgUN+4OA3DN8LDteBsl
-        XW4duyA/WgLVQxGuTHE3iyJniv6WfHPgnsQO/4o587KdM6L5wqUX5BqTJhHmyciamZgkbsF1Ailn
-        gtniSYxYthYpQ7thGQQm3G8s2W+Li442b6eWmQt4wkYsaxVP7/b2Sqx1QeqA4umLRwOKR2GrdF6x
-        XIs167s9H6/KWVU12+35YJVzcPUItYd9sv35ipzQy0uDe+VoiHIUIphr9mmHkwTYqzyxJ1LmcXKj
-        srhHdhCyrdr5ByJDszo9sHCAO4l6dX3MRP1FulgfCgwJBbCj1571i0K4r06P6fcaCdjS3t6rDvKq
-        SJRqXK/E/T1DcuuS3q7VZ1mHImKfZR3vOGmI3bFm9VrwDYpB1S++v1bvlSXPaxHDneb4c9iqoNdM
-        slT0DQW8W/WYnhDTVgH9opjpLYAizNx3ogR+dsiJEi/T+3dJDr5L0gqgn0UWYfNP8TJKX4+K2sE+
-        VoHxEFbHqYKGHzqE14eCACzy1CtQs+krSK3K3Pg02/+s1UJ/kcr1LrB2BKkD/Srij516VXV9zHrV
-        Yape5uF8LM3OSb1308K9HPctPaA2hnf0MM0mqXIJOwOl4/Soh8kfQ+qPfXEMjAKRmtHPQq77bvrH
-        S6OK01c7nrT+wLvSk5zRGwekrT5VQEo+jfyV5w4HVy76yzsKcBadqtjlx/difitS/cS0Z/X0f1DC
-        s9r7j0i0CtWfbLmUnGgl5aNTpZVBHx8ERKS/L/OHw379mX+HG3+Y96PrE3n/WUitHjoix/r3f9s0
-        V1ajRwAA
+      string: '[{"id":"1","name":"Cookies","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"8","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"cookies.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"2","name":"Chocolate","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"8","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"1","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"3","name":"Gummy
+        bears","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"8","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"gummybears.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"5","name":"Eggs","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"2","qu_factor_purchase_to_stock":"10.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"6","name":"Noodles","description":null,"product_group_id":"6","active":"1","location_id":"3","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"7","name":"Pickles","description":null,"product_group_id":"3","active":"1","location_id":"5","shopping_location_id":null,"qu_id_purchase":"4","qu_id_stock":"4","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"8","name":"Gulash
+        soup","description":null,"product_group_id":"3","active":"1","location_id":"5","shopping_location_id":null,"qu_id_purchase":"5","qu_id_stock":"5","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"9","name":"Yogurt","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"6","qu_id_stock":"6","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"10","name":"Cheese","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"11","name":"Cold
+        cuts","description":"Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+        sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
+        erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
+        rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum
+        dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
+        diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+        sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+        Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
+        amet.","product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"12","name":"Paprika","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"paprika.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"13","name":"Cucumber","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"cucumber.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"14","name":"Radish","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"7","qu_id_stock":"7","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"15","name":"Tomato","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"tomato.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"16","name":"Pizza
+        dough","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"17","name":"Sieved
+        tomatoes","description":null,"product_group_id":"3","active":"1","location_id":"5","shopping_location_id":null,"qu_id_purchase":"5","qu_id_stock":"5","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"18","name":"Salami","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"19","name":"Toast","description":null,"product_group_id":"2","active":"1","location_id":"3","shopping_location_id":null,"qu_id_purchase":"5","qu_id_stock":"5","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"20","name":"Minced
+        meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"21","name":"Flour","description":null,"product_group_id":"3","active":"1","location_id":"3","shopping_location_id":null,"qu_id_purchase":"8","qu_id_stock":"8","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"1","tare_weight":"500.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"2","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"22","name":"Sugar","description":null,"product_group_id":"3","active":"1","location_id":"3","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"3870","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"23","name":"Milk","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"10","qu_id_stock":"10","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"418","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"24","name":"Milk
+        Chocolate","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":"2","calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"25","name":"Dark
+        Chocolate","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":"2","calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},{"id":"26","name":"Waffle
+        rolls","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -49,18 +67,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:51 GMT
+      - Fri, 22 Apr 2022 08:40:22 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_product/TestProduct.test_get_product_by_barcode.yaml b/test/cassettes/test_product/TestProduct.test_get_product_by_barcode.yaml
index a32d4b1..00cbec2 100644
--- a/test/cassettes/test_product/TestProduct.test_get_product_by_barcode.yaml
+++ b/test/cassettes/test_product/TestProduct.test_get_product_by_barcode.yaml
@@ -7,27 +7,19 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/by-barcode/42141099
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81Vy27bMBD8lUDnOLDkGEV87Q/0XhQLmqIkIpRIU6RdJ8i/d5aUbKUwAvfWi2Ht
-        i9yZ2eV74bytowzF7r3QdbErnovHYhC9wt/vXo9uxHetRum1C9oOxW6IxjzOadR6Gx2lzBKRQgZ9
-        5Fz+MFYKzsluLjx21jk9tPTJlSseIuLIRS87MXKJDRKycQxWvl4tDU6x/hJKwdIcUT6tkdXrIVtI
-        9DYOaK4o2V6rRkQTaK9G/mmsV1SL8wj/V24STVCerFNo/57Ixiv1hjbviw6dOF2DnZYh4l6NNooy
-        ERkfNYg9TEHAeVK67QJ1YqjNNXXh4pMTFIMNJDslXydAmmhQ2fRqCIT+ySupnZoRcCgOx6SJxFs+
-        XApjvU5xZcXEyNhHI4Kiv7Em29AY93ONuXIdcfWzm6VxiBpXknYYY68WLKU7d7pWBNkkUskelT9q
-        dZrA9PZE0iscXVPQPZgUvYOvWlflqixXVfVQbnbVeldVC8ad1+grFzRir8xUTRiDeslCDhzHQbNa
-        WA3QajQ1MYB70OHt20T/x1X9e+GlxXQUu5/T+DA2S/jSPE1hKPxclc/l+uUFUUna8zjNOs1ofzUm
-        RkC7aEcCyhz9b4ignynz4xdGNFWbZo7Hf4axZPSSN44KjuliPIhXurYMUzIdhYmJ229PW87M1txV
-        GhyukWFdlCDRtl61zCW820T+jczPYVnX8ygfohiCDufE3GUlXLYZ0zFtsx8CO+TmLrsbwJJ543Lk
-        TPSCRcRVR1izgUeqhxoYLcjk8+VSZ//JzZYqKjZP1YapFMd2VhZsbLEG4r7IbTKm3NsSLZYzdzsk
-        C2lQvwPxTqhBfpZdtVpvV9Xy3bhgtXyTsPLODzK6vRW+xhVvvE1385lO0yOGG/ta+aRQ0CawcUSr
-        aOyUacjoZn4lqnINaTurDXnefdgYEvuy2MGMMlc1X0eENwneM+xgbWoooxFmVB9/AA9z8G53BwAA
+      string: '{"product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[{"id":"3","product_id":"4","barcode":"42141099","qu_id":"3","amount":null,"shopping_location_id":null,"last_price":null,"row_created_timestamp":"2022-04-22
+        08:37:58","note":null}],"last_purchased":"2022-04-22","last_used":"2022-04-22","stock_amount":"25","stock_value":"3019.09","stock_amount_opened":"0","stock_amount_aggregated":"25.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"150","avg_price":"120.76","oldest_price":"150","current_price":"150","last_shopping_location_id":"1","default_shopping_location_id":null,"next_due_date":"2019-05-04","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-5,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -37,18 +29,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Mon, 22 Nov 2021 13:29:27 GMT
+      - Fri, 22 Apr 2022 08:40:23 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_product/TestProduct.test_product_by_barcode_get_details_non_existant.yaml b/test/cassettes/test_product/TestProduct.test_product_by_barcode_get_details_non_existant.yaml
index a8fc62d..cef456d 100644
--- a/test/cassettes/test_product/TestProduct.test_product_by_barcode_get_details_non_existant.yaml
+++ b/test/cassettes/test_product/TestProduct.test_product_by_barcode_get_details_non_existant.yaml
@@ -7,7 +7,7 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
@@ -27,13 +27,13 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Mon, 22 Nov 2021 13:29:27 GMT
+      - Fri, 22 Apr 2022 08:40:23 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.11
+      - PHP/8.0.13
     status:
       code: 400
       message: Bad Request
diff --git a/test/cassettes/test_product/TestProduct.test_product_get_details_non_existant.yaml b/test/cassettes/test_product/TestProduct.test_product_get_details_non_existant.yaml
index 9868b3e..211b26a 100644
--- a/test/cassettes/test_product/TestProduct.test_product_get_details_non_existant.yaml
+++ b/test/cassettes/test_product/TestProduct.test_product_get_details_non_existant.yaml
@@ -7,7 +7,7 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
@@ -27,13 +27,13 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:51 GMT
+      - Fri, 22 Apr 2022 08:40:23 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 400
       message: Bad Request
diff --git a/test/cassettes/test_product/TestProduct.test_product_get_details_valid.yaml b/test/cassettes/test_product/TestProduct.test_product_get_details_valid.yaml
index e58f0c1..8ab5464 100644
--- a/test/cassettes/test_product/TestProduct.test_product_get_details_valid.yaml
+++ b/test/cassettes/test_product/TestProduct.test_product_get_details_valid.yaml
@@ -7,27 +7,20 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
-    uri: https://localhost/api/stock/products/10
+    uri: https://localhost/api/stock/products/8
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA8WVTW/bMAyG/0qhs1PEcVJsvg7YefdhIBSZtoXKlipLybqi/32vLdtNhzTYTrsE
-        sPgh8uUj5kU4b6uogihfhK5EmW8z0cuORSm+tMwDi0xUPCivXdC2F2UfjcmWKGq8jY7GwIdMSBX0
-        CZF5JoxVcvSfTLtMDK11TvcNvTOkXE8RXuSiV63EfWWRiXQ0BKsel+8a2a1f3ShYmu24rtN9+iLZ
-        2dijG7RRcS2jCXTkYfyprWeq5PNw00iyDuzJOkavN5LMfrVn/oW+/sY3tPK8uDqtQkQ9tTZMSe8k
-        BvfyiKMgYTyzbtpArewrswReGKY7extItawe5/7raJDTdNwHQsfkWWnHqWeHpDieJz6NJl2qpLFe
-        j175Duqr2EUjA9OfspKtaYjHJcOsZES5zy7N/SlqlKJsP8SO12FgQq2umMDDNDOyJ/YnzeepBW/P
-        pDzjwoqC7jAt2Tnwt9vu8s12t8mLu/xzuc/L4kG8vqF3lF5ZoCnK7wnd/ZttIXn2mfraH2auJqIW
-        TlDadTYBrZEAx3mt0FsS6napxSY/3G0P5X5f7j7h3WA2iBTyqMTrjyXdjDlezNrgtoDzdFkcGIZ0
-        V1JqqRPFp4OTNHHU+nCfr2fJaYJ2jAe2l8Ekm8ZzM+oryusx71wuqH+Ksg86PFPsNaRYn2gSHKjM
-        q+KbxEO9uihuK3Y53P2oGDYPORO9NNBnzDrgNB2MOHeY9qgOMHhf2tTvssP+a12X0BT3B+gtT81C
-        UXG/RXHWANuVrHQ2hX1I4rLKrjskXnr+GajCY6ww6ZWuYrN9GOma9/EiEeieR/fV66r5YMv/2/D0
-        QNM6ZA8EMSGJRy4bpqFlU5PR9bJ+D+Ojc1Yb8uOWcewV9tLELXK80bruDxCJvwbsOW0qEFBLM/Dr
-        b7pC4+27BgAA
+      string: '{"product":{"id":"8","name":"Gulash soup","description":null,"product_group_id":"3","active":"1","location_id":"5","shopping_location_id":null,"qu_id_purchase":"5","qu_id_stock":"5","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[{"id":"1","product_id":"8","barcode":"22111968","qu_id":"5","amount":null,"shopping_location_id":null,"last_price":null,"row_created_timestamp":"2022-04-22
+        08:37:58","note":null},{"id":"2","product_id":"8","barcode":"22114358","qu_id":"5","amount":null,"shopping_location_id":null,"last_price":null,"row_created_timestamp":"2022-04-22
+        08:37:58","note":null}],"last_purchased":"2022-04-12","last_used":null,"stock_amount":"5","stock_value":"17.6","stock_amount_opened":"0","stock_amount_aggregated":"5.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"5","name":"Tin","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57","name_plural":"Tins","plural_forms":null},"quantity_unit_stock":{"id":"5","name":"Tin","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57","name_plural":"Tins","plural_forms":null},"last_price":"5.81","avg_price":"3.52","oldest_price":"4.6475","current_price":"4.6475","last_shopping_location_id":"2","default_shopping_location_id":null,"next_due_date":"2024-10-08","location":{"id":"5","name":"Tinned
+        food cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":930,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -37,18 +30,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:51 GMT
+      - Fri, 22 Apr 2022 08:40:23 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_product/TestProduct.test_product_no_barcodes.yaml b/test/cassettes/test_product/TestProduct.test_product_no_barcodes.yaml
index 5d24775..efa1a30 100644
--- a/test/cassettes/test_product/TestProduct.test_product_no_barcodes.yaml
+++ b/test/cassettes/test_product/TestProduct.test_product_no_barcodes.yaml
@@ -7,43 +7,48 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA+2bUZObNhDHv4qGZ5sx+OzYfuukbV7aTqbpS6eTYWSQsXKACEh3c83ku/cvg30g
-        G8fkKOe78HAzp5UQ0lo/7WpX/PPForFQibRWzqj816NhmLGQShZYq9nIuqORYtbKtRdvRtaa5dJb
-        s43ImBegibWy3InrjCeLseNahy5EyhL9+MSQ1PpGJc8rEq8ylEAxTz6k6B/jSjMRKF96HD26h6K1
-        +mKVkoTGeiRvt8IXkR7VyApY7mc8lVwk1ipRUXR4zgszodJdZ3rOvuR3xWsi4VPdfld1M7LyrUhT
-        noReraLo67NCKy9Vmb+lOR6fjqxClEvh3+7LG/QuskMzTwqvrMebY54UpcO8F3rYG6oireKqnh/y
-        nSqbKj26kSzztNIvabfJGPsX87qkrdzS+33TlPtS4Xff8Ih5hcoLZbCEriGSFJX3jIdb6W1pEkT7
-        BysVu3cmQnr+lvm35fw3KkKfUcwS6WFleRnzecqKOafoFOLqEihe6tNIZFy3clxo31ex0j+9Z6rV
-        ExsvV+t9D7o91FxdXp8Vx1B8keQqZocfA622PGAe1sPuN/PEHcvuOLvfTSET956fMQ2JJ3mMX4vG
-        6QEGd+xMibNc3Tir6dz6+nX0iBmAKpZ5ZeFXMXMce4lX13//b3KGJ8peC/JqnaPyNGcAsKaIqpKh
-        0rK45wySkrN3Ko4fyJrRLB9IO4lrSWSHpFmhVvpO5/anNITeXxh15mK7Kupcx55hx29J3fdZN1MR
-        VeowBoM6SPbWLeN5+lKBc/SsB9v2v9s2c3FdFWWwbXDfGiGbjiezrlxIUw9VyGCCDcggKSH7JQwv
-        Rkyb8gbvEdN8iveIx+FNnvEeMT3TzznrzZ2tHNzHVu6jubSuC7G57SybGINbOhlP5seMde8+zo8Y
-        g6Rk7A8hggiOu7YIFxzS8GATZnBJn4IZHj+P2UDZsx3Srpuyhb3E4jltyWDGbsbuzTFlmFLzIQ2V
-        7Q9pCMgYlgySkrL3ONS2oAzTaaIMdq4NZfBYa6GQonzGmA2UDZSdjDhO7MaIIyBbjCedRRzN3abq
-        LiIqZ0AGSQnZO8Sc8i3JEVC81Jx1Bxq4rIFWlAfQds7ulcUczQV2VU6jO7en52KO7th904c5g+Nq
-        kAZJSdrfIlSZvBSyMz5jy6MZeqpBVpQHyAbI2gb2Z7aDHfq0z4gEGizaiZNZ9z6jjsQZlGlRidnb
-        LWPIZz39aNYSs+IohpTaU/JnepMdYoyvO8aI08SJ/BmkZZp6cSb+AcpgyqZ9mDIH9tSkDKI9ZSIK
-        iK/kUQzE+g2J9ZjwFKlIEghkOEnOJUF6W46IzlAyyZCDJTkN0MZHgpWwiMtsRHIWkIDTmCQiUcjO
-        MZ7FIiCSxSk64ckdD5DmJ0qSiK7xEsJk8QJGYhomlNCIf1YP6IBlFC879HcnIpVKRW3ykyRIgQrC
-        RK6fpr6vct1ekk8K2JJA4U+Pme3qGSUZW6vYJh8waOJjnJTc0jwgoVqzDB5/MsJo8SZKJL3lMUV9
-        ThMkmfF8LkmzLuwzdYOeHteMjaVersLKrYfunKNh1345tx60cbzeWw9L+w2WZaNzhMh1L6khB26L
-        uW1DVG7b72ma8Vt6qXcEb68ppNbSO0Lz2iGkKHd5CEGgpcl1er70kJUWCh8uPHR+zQgXHhbnTiMA
-        zunFT4IJMYGDaO8nKVzrgq8wENfXLSO/1PiAXOfIOTN7cRU2DoclEzmISuT+xMki3/YPHAxQzcQV
-        5Vdv4l7kBdrrdiVn9hwW5Jwr2Y9lg3k1MYOoxOwvgeOu6B+zH9WTlDt9D1attVVzJxPgfiLkVlSU
-        UTc0aQRuOZ70Apx7HHLTohK4XyOhLvYjsX80ndxQ1eYyBFLFNbNWlLs0a3ozbgh6P9/J7QKzhp+m
-        lqOd6XXW8Zch2O1afBeiNflsERIM9RRkh7j21J5j7bSEDDpuvnGEyvY3jlyM07BqWlRC9kGF9Bkg
-        A5M1yIryAFkfOVqcHF4LYrg6ew6xvmKQ+ms2EzGISsR+59HtpW5jd4F+nSGuIVYKBsb6YAw79Wth
-        bGa75xjr8iti05yXTBVfER/HQNzHGIhmjLz0j4n19Bv8wt2abaq8aqcRk6o5jSg/0WXULuJ3f0ls
-        LrFeb/V9y2Nc2jeN12c7/mDf1EMNteM4iPsYB/mZZgNqP8h3+y8MtY//AawIfFwdQwAA
+      string: '[{"amount":"1","amount_aggregated":"5.0","value":"5.25","best_before_date":"2022-10-19","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"1","due_type":"1","product_id":"2","product":{"id":"2","name":"Chocolate","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"8","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"1","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"22.92","best_before_date":"2022-10-19","amount_opened":"1","amount_opened_aggregated":"1.0","is_aggregated_amount":"0","due_type":"1","product_id":"3","product":{"id":"3","name":"Gummy
+        bears","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"8","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"gummybears.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"25","amount_aggregated":"25.0","value":"3019.09","best_before_date":"2019-05-04","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"4","product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.14","best_before_date":"2022-05-12","amount_opened":"0","amount_opened_aggregated":"0","is_aggregated_amount":"0","due_type":"1","product_id":"5","product":{"id":"5","name":"Eggs","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"2","qu_factor_purchase_to_stock":"10.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"18.91","best_before_date":"2023-12-13","amount_opened":"1","amount_opened_aggregated":"1.0","is_aggregated_amount":"0","due_type":"1","product_id":"6","product":{"id":"6","name":"Noodles","description":null,"product_group_id":"6","active":"1","location_id":"3","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.5","best_before_date":"2024-06-30","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"7","product":{"id":"7","name":"Pickles","description":null,"product_group_id":"3","active":"1","location_id":"5","shopping_location_id":null,"qu_id_purchase":"4","qu_id_stock":"4","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.6","best_before_date":"2024-10-08","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"8","product":{"id":"8","name":"Gulash
+        soup","description":null,"product_group_id":"3","active":"1","location_id":"5","shopping_location_id":null,"qu_id_purchase":"5","qu_id_stock":"5","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.09","best_before_date":"2022-05-06","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"9","product":{"id":"9","name":"Yogurt","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"6","qu_id_stock":"6","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.11","best_before_date":"2022-05-13","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"10","product":{"id":"10","name":"Cheese","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"4","amount_aggregated":"4.0","value":"15.26","best_before_date":"2022-05-02","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"11","product":{"id":"11","name":"Cold
+        cuts","description":"Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+        sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
+        erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
+        rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum
+        dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
+        diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+        sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+        Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
+        amet.","product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.64","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"12","product":{"id":"12","name":"Paprika","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"paprika.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.67","best_before_date":"2022-04-20","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"13","product":{"id":"13","name":"Cucumber","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"cucumber.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.31","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"14","product":{"id":"14","name":"Radish","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"7","qu_id_stock":"7","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.34","best_before_date":"2022-04-20","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"15","product":{"id":"15","name":"Tomato","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"tomato.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"1","amount_aggregated":"1.0","value":"1.74","best_before_date":"2022-04-21","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"2","product_id":"20","product":{"id":"20","name":"Minced
+        meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2000","amount_aggregated":"2000.0","value":"0.0","best_before_date":"2022-11-08","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"21","product":{"id":"21","name":"Flour","description":null,"product_group_id":"3","active":"1","location_id":"3","shopping_location_id":null,"qu_id_purchase":"8","qu_id_stock":"8","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"1","tare_weight":"500.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"2","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2","amount_aggregated":"2.0","value":"9.43","best_before_date":"2022-11-08","amount_opened":"1","amount_opened_aggregated":"1.0","is_aggregated_amount":"0","due_type":"1","product_id":"22","product":{"id":"22","name":"Sugar","description":null,"product_group_id":"3","active":"1","location_id":"3","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"3870","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2","amount_aggregated":"2.0","value":"9.86","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"23","product":{"id":"23","name":"Milk","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"10","qu_id_stock":"10","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"418","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2","amount_aggregated":"2","value":"1.58","best_before_date":"2022-10-19","amount_opened":"0","amount_opened_aggregated":"0","is_aggregated_amount":"0","due_type":"1","product_id":"24","product":{"id":"24","name":"Milk
+        Chocolate","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":"2","calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2","amount_aggregated":"2","value":"9.43","best_before_date":"2022-10-19","amount_opened":"0","amount_opened_aggregated":"0","is_aggregated_amount":"0","due_type":"1","product_id":"25","product":{"id":"25","name":"Dark
+        Chocolate","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":"2","calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -53,18 +58,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:51 GMT
+      - Fri, 22 Apr 2022 08:40:23 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_product_groups/TestProductGroups.test_get_product_groups_valid.yaml b/test/cassettes/test_product_groups/TestProductGroups.test_get_product_groups_valid.yaml
index 39a7463..d794ed4 100644
--- a/test/cassettes/test_product_groups/TestProductGroups.test_get_product_groups_valid.yaml
+++ b/test/cassettes/test_product_groups/TestProductGroups.test_get_product_groups_valid.yaml
@@ -7,18 +7,20 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/product_groups
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA7XRTQrCMBAF4KsMs67YpD9gll14ABU3KiUmYw22SUlTRMS7qwjmANUDzPt483Z3
-        NBoFS9DKjlBgymB9JQoDJqhpUN70wTiLwo5tm6B311p5koF0HUxHQ5Bd/zrjKWezlM9YBmwhciay
-        Ah/JJ5zHcA6VvJC/Qe+dHtV0pfwqWVQy2BhrScPJOT21RxTyKORQjUGd/9OkiE4BW2ooyGNLw36+
-        9KP55cvKCJWwopM3Dfn3tL+c5/AE0GdNo2MCAAA=
+      string: '[{"id":"1","name":"01 Sweets","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57"},{"id":"2","name":"02 Bakery products","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57"},{"id":"3","name":"03 Tinned food","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57"},{"id":"4","name":"04 Butchery products","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57"},{"id":"5","name":"05 Vegetables\/Fruits","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57"},{"id":"6","name":"06 Refrigerated products","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57"}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -28,18 +30,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:51 GMT
+      - Fri, 22 Apr 2022 08:40:23 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_shoppinglist/TestShoppingList.test_add_missing_product_to_shopping_list_valid.yaml b/test/cassettes/test_shoppinglist/TestShoppingList.test_add_missing_product_to_shopping_list_valid.yaml
index cf18404..e95a55a 100644
--- a/test/cassettes/test_shoppinglist/TestShoppingList.test_add_missing_product_to_shopping_list_valid.yaml
+++ b/test/cassettes/test_shoppinglist/TestShoppingList.test_add_missing_product_to_shopping_list_valid.yaml
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -31,11 +31,11 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 07:22:01 GMT
+      - Fri, 22 Apr 2022 08:40:24 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 204
       message: No Content
diff --git a/test/cassettes/test_shoppinglist/TestShoppingList.test_add_missing_products_to_nonexistant_shopping_list.yaml b/test/cassettes/test_shoppinglist/TestShoppingList.test_add_missing_products_to_nonexistant_shopping_list.yaml
index f404caa..38c20cd 100644
--- a/test/cassettes/test_shoppinglist/TestShoppingList.test_add_missing_products_to_nonexistant_shopping_list.yaml
+++ b/test/cassettes/test_shoppinglist/TestShoppingList.test_add_missing_products_to_nonexistant_shopping_list.yaml
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -31,13 +31,13 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 07:22:02 GMT
+      - Fri, 22 Apr 2022 08:40:24 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 400
       message: Bad Request
diff --git a/test/cassettes/test_shoppinglist/TestShoppingList.test_add_nonexistant_product_to_shopping_list.yaml b/test/cassettes/test_shoppinglist/TestShoppingList.test_add_nonexistant_product_to_shopping_list.yaml
index 9ed25b2..7ed5226 100644
--- a/test/cassettes/test_shoppinglist/TestShoppingList.test_add_nonexistant_product_to_shopping_list.yaml
+++ b/test/cassettes/test_shoppinglist/TestShoppingList.test_add_nonexistant_product_to_shopping_list.yaml
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -31,13 +31,13 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 07:22:02 GMT
+      - Fri, 22 Apr 2022 08:40:24 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 400
       message: Bad Request
diff --git a/test/cassettes/test_shoppinglist/TestShoppingList.test_add_product_to_shopping_list_valid.yaml b/test/cassettes/test_shoppinglist/TestShoppingList.test_add_product_to_shopping_list_valid.yaml
index 585babe..fb90506 100644
--- a/test/cassettes/test_shoppinglist/TestShoppingList.test_add_product_to_shopping_list_valid.yaml
+++ b/test/cassettes/test_shoppinglist/TestShoppingList.test_add_product_to_shopping_list_valid.yaml
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -31,11 +31,11 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 07:22:01 GMT
+      - Fri, 22 Apr 2022 08:40:24 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 204
       message: No Content
diff --git a/test/cassettes/test_shoppinglist/TestShoppingList.test_clear_shopping_list_valid.yaml b/test/cassettes/test_shoppinglist/TestShoppingList.test_clear_shopping_list_valid.yaml
index eabd3ee..7ad6845 100644
--- a/test/cassettes/test_shoppinglist/TestShoppingList.test_clear_shopping_list_valid.yaml
+++ b/test/cassettes/test_shoppinglist/TestShoppingList.test_clear_shopping_list_valid.yaml
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -31,11 +31,11 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 07:22:02 GMT
+      - Fri, 22 Apr 2022 08:40:24 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 204
       message: No Content
diff --git a/test/cassettes/test_shoppinglist/TestShoppingList.test_get_shopping_list_valid.yaml b/test/cassettes/test_shoppinglist/TestShoppingList.test_get_shopping_list_valid.yaml
index c61fb8c..f623dfa 100644
--- a/test/cassettes/test_shoppinglist/TestShoppingList.test_get_shopping_list_valid.yaml
+++ b/test/cassettes/test_shoppinglist/TestShoppingList.test_get_shopping_list_valid.yaml
@@ -7,19 +7,21 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/objects/shopping_list
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA8XSwQ6CMAwG4FchO0MyEJHwGh6NIYRNXIR1si0ejO9uKx4U0XiC69qmX/5ud2VK
-        sILFLGSmB+FrV9KD9m0bMg1OYnELnQwaABFYXdUni71VB16752APl7LuZeWkKJ3qpHVVZ7CW8IRH
-        PI/iLOBZka6K9QZH7RGMUbopW2WHZY/tAjTt4thx9i8Gb2V/ULIVdlDdwic5GZFxHb4M5IE/B5Kt
-        cOlXIxVfY2UxJTC7cf3LmH4YvxFzLPx/a+r++9a/YyT/W4x0+8kUKfBFiNmYSJJJYkKBL2Kkv/cW
-        I0kmjRT4rMT9HaDSU5OJBAAA
+      string: '[{"id":"1","product_id":null,"note":"Some good snacks","amount":"1","row_created_timestamp":"2022-04-22
+        08:37:58","shopping_list_id":"1","done":"0","qu_id":null},{"id":"2","product_id":"20","note":null,"amount":"1","row_created_timestamp":"2022-04-22
+        08:37:58","shopping_list_id":"1","done":"0","qu_id":"3"},{"id":"3","product_id":"17","note":null,"amount":"1","row_created_timestamp":"2022-04-22
+        08:37:58","shopping_list_id":"1","done":"0","qu_id":"5"},{"id":"4","product_id":"1","note":null,"amount":"8","row_created_timestamp":"2022-04-22
+        08:38:02","shopping_list_id":"1","done":"0","qu_id":"3"},{"id":"5","product_id":"2","note":null,"amount":"3","row_created_timestamp":"2022-04-22
+        08:38:02","shopping_list_id":"1","done":"0","qu_id":"3"},{"id":"6","product_id":"3","note":null,"amount":"3","row_created_timestamp":"2022-04-22
+        08:38:02","shopping_list_id":"1","done":"0","qu_id":"3"},{"id":"7","product_id":"4","note":null,"amount":"5","row_created_timestamp":"2022-04-22
+        08:38:02","shopping_list_id":"1","done":"0","qu_id":"3"}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -29,18 +31,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 19:27:51 GMT
+      - Fri, 22 Apr 2022 08:40:23 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -52,25 +52,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/20
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA8VUwW7bMAz9lcLnZrDTLij8AbsN2H0YCEaibaGypMhSsqzov4+yLCfthgwDBuwS
-        xI8URb73qJfKeSujCFX7UilZtdW2ru4rgyPx/8/KCJJ3I2FgUNIkvHJBWVO1Jmp9Xw5D7210MJ9/
-        5EwUQR1TgYY/tBWYzuTwlpFpsM4p08ObUK54iJwHLnox4JRKPPCBDE7BiucL0vEt1q+pECyUjOZD
-        GmJUJiOAo42GR6wSLKnDqAPsaUo/nfUEEs/TH8KAXSAP1hFPf7PQktl5oh88JWc3T7cuXvLDgKec
-        njhySoTInXVKE2Q5MkFkcM9QQA6eSPVDgAGN1PlouucqlDqduTA2gBhIPC+MdFFzZT2SCcAMgCeh
-        HBUOHBfnwGKNWbh8uUBtvZrzmm1SRsQxagwE78kG28EU96VGqSwjt352xRuHqLglYc0UR7rIlPUb
-        lCRg38yqgj2SPyo6LeR7ewLh2ZgkIaiRtcTRcWxbb+tN/bRpdnf1rn18aD/uqteLUffohWUjV+3X
-        b2xNZAsUr7H585AzGidagdxAMVHNBk5OhCPqyIOs3zlhdkg6+x7HvvfUp4Z/jSVX8SDvUopTDxFN
-        UOEM0ahLv+vGJh2Whf2CvCG/3dS/4SuXA6ejR82cpqoTl81A8svIBCaymNm3zS0buLwl/7ezrK5X
-        gkXKyuKxZ0NeAVazF5LRr7D52K0nqshyK8fQ9wDJ7JIFL9eX525VLi36otwnr2RP/0I7NcH89JCf
-        V4UlQl4d7AmmgXQHWnXlwds07GVnlQafdtiRF7z3sz25ysWN62bWrz8Bq9G8rjEGAAA=
+      string: '{"product":{"id":"20","name":"Minced meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":"20.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":"2022-04-12","last_used":null,"stock_amount":"1","stock_value":"1.74","stock_amount_opened":"0","stock_amount_aggregated":"1.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"1.735","avg_price":"1.74","oldest_price":"1.735","current_price":"1.735","last_shopping_location_id":"2","default_shopping_location_id":null,"next_due_date":"2022-04-21","location":{"id":"2","name":"Fridge","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","is_freezer":"0"},"average_shelf_life_days":9,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -80,18 +73,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 19:27:51 GMT
+      - Fri, 22 Apr 2022 08:40:23 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -103,25 +94,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/17
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA8VU227bMAz9lcDP7eCkazf4N7a3YSAYibaFyqIqS8m6ov8+yrLjNMW6FRiwlyDm
-        5YjkOeRT5QPrpGLVPFVGV021/VRdVQ4Hkv9fDB1IbyIPGJlGcWgaVTA+GnZV45K1VwsAdIGThwnj
-        RiJRRXPIIFv5sKww5xT3rVjGnr03roMXroL4kCQOfAqqxzFD5IRiHCOr+9XSyiscTqEQGZaI7Yda
-        sgbjigVw4OSkzSqbNbWYbIQ9jfmn5UCg8XH8gxuwjRSAPUn3bwLNkW0g+ild/l107PG4BnujYpK6
-        WmMJCiFlPORwL6aI4jyS6foIPTpt19QzV355moTjCKondT/Po01WkO1ALoL0D4GU8cJx6csLuDhm
-        cUy0lccVWg5mitvuMs8qDcliJLgcNXALY9ovGAuyTlL6o1+U8ZCMlKTYjWmglaTCXm80gahm4hT4
-        QOFg6DiXGPgIKpA8rSGaQZjEwYtvV+/q6/rz9fZuU981H2+a27vqeZXpHoNikXHVfPsuwkQRwKI0
-        kX9pcrKmkU6GUsAioVrkm3UIB7RJGjl9l4BJHzn30o5dF6jLBb/2ZU1JIxchi04fErpo4iMkZ9Z6
-        Tzub92Ne2a/GTfp+tabvGVdBA29TQCsjFdC8/OU7q2WQ8eVRyVxfljZv33xL/mddhdlglBBUWMVD
-        J2I8M7AVHWSRn9mmtLeO00LJWzGOfkTIQtdC9vL8cuh+w5qwv2mZ9UYlv2cM+l/QaEaYThCFaWmE
-        LpQlwo5g7Mm2YE27HL7rrajas7EQ8jZ7CkouwCRUQVl1edrR+vkXHdLVeT0GAAA=
+      string: '{"product":{"id":"17","name":"Sieved tomatoes","description":null,"product_group_id":"3","active":"1","location_id":"5","shopping_location_id":null,"qu_id_purchase":"5","qu_id_stock":"5","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":null,"last_used":null,"stock_amount":0,"stock_value":0,"stock_amount_opened":0,"stock_amount_aggregated":0,"stock_amount_opened_aggregated":0,"default_quantity_unit_purchase":{"id":"5","name":"Tin","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57","name_plural":"Tins","plural_forms":null},"quantity_unit_stock":{"id":"5","name":"Tin","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57","name_plural":"Tins","plural_forms":null},"last_price":null,"avg_price":null,"oldest_price":null,"current_price":null,"last_shopping_location_id":null,"default_shopping_location_id":null,"next_due_date":null,"location":{"id":"5","name":"Tinned
+        food cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-1,"spoil_rate_percent":0,"is_aggregated_amount":0,"has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -131,18 +115,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 19:27:51 GMT
+      - Fri, 22 Apr 2022 08:40:23 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -154,25 +136,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA8VU227bMAz9lcLPTeGkXVDkdT+w92EgGJm2tciSokuyrOi/j7IsO+22ogUG7CVw
-        Di8ieQ75VFlnmihCtXuqZFPtqnV1W2kciD8/G3OQ5BloyAsnbZBGVzsdlbotcdA5Ey3MoSiCPKXg
-        lEcZgSkmmx8Y8b2xVuoOXphyxmNkP7DRiR59SnHPARn0wYjDgrT8inGzKwQDxWN9V3PUIHVGAAcT
-        NXdXPTLcUItRBdiTTz+tcQQNXjybU9TfzIBtIAfGEnf/Hs/WEf3kLt/nHXo8L85WihC5rlYqgokI
-        kYm4+247LpM07tkWkL3OJLs+QI+6UUuOK1MqYRyJNgFET+IwDaaNip9QA+kAPAhwJKRlsnODlpOz
-        YRLHyF8mSaAyLomCGd4kgkQcosJA8HrmYFrwcV9ylMxN5NIvtkjkGCWXJIz2caCFrUxjLxsCls9I
-        LpgTuZOk81SiM2cQjvjpBoIcmFIcLNs29aZe1Y+r9fam3u4e7nefttXzotc9OmFYz9Xu6zdWKLIS
-        iuRY/rnJEY2eZiAXULRUs46TIOGEKnIj8//sMAolxb7Gsescdang321JXNzIK5eiyGNEHWS4QNRy
-        qXfe2cTDJJUvyIvyx4X9yLxyOrAqOlQ805Q13YEMJL0MPMA0LJ7sy+KmRZyuyf+tLLPrpGCSMrN4
-        6liQV4BRrIUk9CtsDHvrUhVa3vLR9CNAEnvDhJfny9WbmUs3sVxb3uHLjYh2b9A1/4JD6WG8ROTG
-        lWGqkFcIOwLfk2pBybbcv9WaNW2NVODSLltygvd/lClnWVQ5b2j9/AvbKfKtOwYAAA==
+      string: '{"product":{"id":"1","name":"Cookies","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"8","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"cookies.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":null,"last_used":null,"stock_amount":0,"stock_value":0,"stock_amount_opened":0,"stock_amount_aggregated":0,"stock_amount_opened_aggregated":0,"default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":null,"avg_price":null,"oldest_price":null,"current_price":null,"last_shopping_location_id":null,"default_shopping_location_id":null,"next_due_date":null,"location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-1,"spoil_rate_percent":0,"is_aggregated_amount":0,"has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -182,18 +157,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 19:27:51 GMT
+      - Fri, 22 Apr 2022 08:40:24 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -205,26 +178,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81UTW/bMAz9K4XOTWGnadD6uj+w+zAQikzbQmVJkaVkWdH/PlKK42TogA7YYZfA
-        efwQyffIN+GDa5OKonkTuhWNWIt7YeWI9PllcMoZGZGgFicVtI/aWdHYZMz9HAl9cMlDDq7JU6qo
-        DxzOf4xTkmOKeUPINDjvte3hxlQy7hP5gU9BDXLiFI8UUMApOvW6IB294sLFFaKD2aN+qChq1LYg
-        IEeXLPUnnglusZPJRNjhxD+dCwitPE1k5qg/mUF2EQM4j9T9Zzy7gPiTuvycdxzkcXH2WsVEdXXa
-        IBQqynjQyh1BUZLxiLofIgzStmYJvTLxy3kS1kVQA6rX8zy6ZCizGdFGoP4hoNIe5wl4Sk6Gsyoy
-        beVxJY0LOvvVa+ZFpTGxOOD3UYPrYEq7OQdnZim0iUo/+VkZ+6SpJOXslEZcSCrsDbpFINVkTsEd
-        MBw0Hs/DDO4IKiA93ULUIzEpR0+2dbWuVtXzqt7eVdtm89g8bcX7ItOdDMqRjEXz7TsJU5IAZqVl
-        3Z+jqy3Vmq1pQjKU7kshFylxPwU6SJO4pc3D5uUCFr8sF06RBXOdAWTfB+y5A7I+ZZpu7Cw06u7G
-        rbA5K3SfpI06niBZvTRy2WIm6LzFXyUtzocL/DeDLOnAmxSkoaI560RpC8BCGmmyPCwa+W1xubP/
-        pLJCe9DqijN56EmrN5AzJBTeghs0B398v/LZnLn52KUIyeKPCLwKLd/VLNp6Va1XNd/d+SRehsUH
-        cz7GtOmnO5X8zsnQ/gtC9QT5TGHIEiXeJC2a7BGmAU0HRnfzcaxfKhK8d9pA4JX3GBSdCdEQTGkW
-        nV4tsnj/BbazoZJdBgAA
+      string: '{"product":{"id":"2","name":"Chocolate","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"8","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"1","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":"2022-04-12","last_used":null,"stock_amount":"1","stock_value":"5.25","stock_amount_opened":"0","stock_amount_aggregated":"5.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"5.2525","avg_price":"5.25","oldest_price":"5.2525","current_price":"5.2525","last_shopping_location_id":"1","default_shopping_location_id":null,"next_due_date":"2022-10-19","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":190,"spoil_rate_percent":0,"is_aggregated_amount":"1","has_childs":true}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -234,18 +199,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 19:27:52 GMT
+      - Fri, 22 Apr 2022 08:40:24 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -257,26 +220,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81UTW/bMAz9K4XPTWC7TRr4usOuuw8Dwci0rVWWVFlKlhX776OkOG6GDGhvvQTO
-        44dIvke+FtaZNghfNK+FbIumeCjuC40j8efXMI6nuz2hmxhsaRJOWi+NLhodlLqfY6F3JlhI4RV7
-        ovDyEBPEP8oIjDHZ/MjINBhrpe7hypQzvgT2AxucGHCKKWI5GZy8Ec8L0vErxl1cwRuYPap1yVGj
-        1BkBHE3Q3GGxY7ilDoPysKcp/nTGEbR4mtgco/5nBuw8OTCWuPv3eHaO6Dd3+T5vP+BxcbZS+MB1
-        dVIRnMnoIxmJi/VP23OlpHHPZo/seCTZDx4G1K1a0rwxxSrSVLTxIAYSz+fZdEHxK2ok7YFnAY6E
-        tDRPw3JyNpw1kijMPAlUxsnkV9WRIxHGoNAT/Dt2MB1MYT/nmDO3gUs/2VklL0FyScLoKYy0EJaZ
-        HGRLwApK/II5kDtIOp4H68wRhCN+ugUvR2YVR8u2uqzLVblbVdu7cts8PjSbbfFnkewenTAs6aL5
-        /oNFiiyGWXVxC+bocsu9JWuYiA25+1zIRVYb9snQAVWILW2e1vXTBc2OSTsxR1qLtykA+95RH1uI
-        sYmnK3tUHbd35ZZHM8v1JaD20p8gaLl0cmupvyFv0c1t/sgk840Aq4JDxUXHrPFIZCAqaeTRxmnx
-        zK+LS519ksoy706KpMPdukrn69CzWs9YtX6M9BrFWomLcA2n+Nv3LLE803PbJYtJ0y8PcR1aFgCP
-        kqVXrcp6VdX87nwiL/OKB/R8Eb7wtp/uRLB7g65l/MaF/hincoJ0tshxHWVcF+Rlw55gGkh1oGQ3
-        H8u6Kln01kgFLq69JSf4VBQNw5xmkeqyzJzwL5GTFsxvBgAA
+      string: '{"product":{"id":"3","name":"Gummy bears","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"8","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"gummybears.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":"2022-04-12","last_used":null,"stock_amount":"5","stock_value":"22.92","stock_amount_opened":"1","stock_amount_aggregated":"5.0","stock_amount_opened_aggregated":"1.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"4.72","avg_price":"4.58","oldest_price":"5.92","current_price":"5.92","last_shopping_location_id":"1","default_shopping_location_id":null,"next_due_date":"2022-10-19","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":210,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -286,18 +241,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 19:27:52 GMT
+      - Fri, 22 Apr 2022 08:40:24 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -309,26 +262,19 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/4
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81U227bMAz9lcLPS2C7bdD5dT+w92EgFJm2hcqSqkuyrNi/j5TiONmKoX3bSxAf
-        kke8HPK1ct72Scaqe61UX3XVQ/WpMmJG+vvFq+ACffcYpFcuKmuqziStPy1hMHqbHOTIhjyFjOrA
-        sfyhrRQcU8xMHCbrnDIj3JgK40siP3DJy0kEpringAKGaOXzigz0ivUXV4gWFo9mW1PUrExBQMw2
-        GSquahjvcRBJR9hj4J/BeoRenALZ/2UGMUT0YB1S+e/xHDziTyrzfd5xEsfV2SkZE+U1KI1QBlH6
-        g0bsCYqCjEdU4xRhEqbXa+iViV/OrTA2gpxQPp8bMiRNzHpGE4HqB49SOVw64IicDGdN5LmVx6XQ
-        1qvs17Q8GJnmpEVE+LPXYAcIab9wLMx9otRPbpHGS1KUkrQmpBmvppRznlSPQLLJQwV7QH9QeDw3
-        09sjSI/0dA9RzTRJMTuytXVbb+qnTbO7q3fdw333uKt+rTrdCy8t6bjqvn0nZQoSwCI1Vv0SXe+o
-        tmxNAclQqi+JXLT0SD4FOgiduKTHZvv0+YIWx6wX5siKuaYAMY4eRy6BY3PNN3ZWGpV341bGuSj4
-        JQkTVTxBMmqt5LLEPKHzEn8VtDpvrvBHOlnowOnkhaakmZUvQwFYSTO1lrtFPb9NLlf2n2RW5u6V
-        5KG124ZvkjiMJNYCNfX2/okwq0kqvAe3cA5/+4ZVbW5yuS9vuxQtGfwRgbehp/lzFnXbbOp20zDB
-        chYv7bq+xrTspzuZ3N4K3+fX/rrKHxupCpAvFXrKo+ZtEbRrYkQIE+oBtBqW+9g2NWneWaXB89Y7
-        9JIuRdURTDSrUtddJsLfVk+mbV4GAAA=
+      string: '{"product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[{"id":"3","product_id":"4","barcode":"42141099","qu_id":"3","amount":null,"shopping_location_id":null,"last_price":null,"row_created_timestamp":"2022-04-22
+        08:37:58","note":null}],"last_purchased":"2022-04-22","last_used":"2022-04-22","stock_amount":"25","stock_value":"3019.09","stock_amount_opened":"0","stock_amount_aggregated":"25.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"150","avg_price":"120.76","oldest_price":"150","current_price":"150","last_shopping_location_id":"1","default_shopping_location_id":null,"next_due_date":"2019-05-04","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-5,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -338,18 +284,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 19:27:52 GMT
+      - Fri, 22 Apr 2022 08:40:24 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_shoppinglist/TestShoppingList.test_remove_product_in_shopping_list_valid.yaml b/test/cassettes/test_shoppinglist/TestShoppingList.test_remove_product_in_shopping_list_valid.yaml
index 0822c2d..c1cb45b 100644
--- a/test/cassettes/test_shoppinglist/TestShoppingList.test_remove_product_in_shopping_list_valid.yaml
+++ b/test/cassettes/test_shoppinglist/TestShoppingList.test_remove_product_in_shopping_list_valid.yaml
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -31,11 +31,11 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 07:22:02 GMT
+      - Fri, 22 Apr 2022 08:40:24 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 204
       message: No Content
diff --git a/test/cassettes/test_stock/TestStock.test_get_due_products_valid.yaml b/test/cassettes/test_stock/TestStock.test_get_due_products_valid.yaml
index 1da342a..63d9426 100644
--- a/test/cassettes/test_stock/TestStock.test_get_due_products_valid.yaml
+++ b/test/cassettes/test_stock/TestStock.test_get_due_products_valid.yaml
@@ -7,30 +7,25 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/volatile
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA+1YTVPbMBD9K4zPkIkdCJArh5460+n01mE0iizHamxLyFLSlOG/d1eSYzsEJuUr
-        UHL0av30sfu0T3sbpZYTpWVqmamjyc/biJbSViaaRGfRcfggdDbTfEYNT9E+GMLIghaWw1d8OTgf
-        w/eU14ZMeSY1Jyl4wlAyTOKTYXISd5Ck4pVDQQw/FfG2/iRDN4moO1ayXhn+i+s2K+WWAJ9hC0Tg
-        CuOktUST26g1VrTEP75RpcWcIgyvmRbKCFlFk8oWRQs109IqD+g2wIxYNNMVklH8xw/jdHUulRLV
-        jPSGPOKNBT+irGY5rd3JwA/eWBvJ5nhW3pJRZqReuxIjSeMRuxMpReUtG6fBM2oLDEA3CiuIaHTu
-        drl9mNDMcO0CAJ7uWB8ACp6Z5vwP7HI3b5PTZeusBDMWsiMTBSchEMoHYvBLzWCZvKJTGDMUvJZc
-        zHJDclqlRYvRGcIluCOppCEs52weDiazBUxRlLwyBNKRaM6E4ngUuEEF4DDQzRcfJEYLqYXzi5MR
-        eDJb2gIymWyeOZEZqe20wWiQNzLyxgpYEpNVbUveRsuHMRcpJ5A+LrhELrheCL4MS9RySZjmSDdi
-        RAkhpaWCsTWfRkfx5eQ0nozG0d3d8b9T9mxw8e4oe4qx8fdQS1k0hkz5TlNR5/C9H8Yii/qMDZZP
-        xljPlQNR3V3ydKLidR+qX6+2Jr3aOh7EF+DYv9T3W1rdzbjJU2cMPP0qivnOLMVbCCrei9XVGG/4
-        Pk0b0yvwdId6idIm3Orpm1bWd8ZTCMsHKafXxxGW4+fK4iQeXKBqfIy7MWa/U9tBAodM6dk6AhiH
-        nyWLUdVscjdGY+DulYUgTbkGy36qbFDBIJYb1ftJdTELkTgI4zcWxmOkw7siLd4i90iLxkDaH7Kk
-        Rh4ou++nrHFxOBD26YSF0st/K6Hh2RsSfqMj1SmYPdXs39RNR+p0gE+zxzjcUd+v0Y9C+LCB0B9y
-        jYeNx22CxrVorhhPj0p48+9MZHwbv6R2xouvL52D5QMp5/hiB03edqVcoLZ0pZLh/0ZjL6PepiEF
-        NC5FXWMvtEdj34Vtk/5Kyjn229YiOPwFMhdfvdD7hV6dKVakaXk6eYz9LoeEW2p0ay6ZxFbdNqxR
-        I5nvo8XRGg1zPaB9sWW5OppyqreuDXm3dW0dtE7f6kqLWm0Fwhr+END13V80yNKkmhcAAA==
+      string: '{"due_products":[{"amount":"5","amount_aggregated":"5.0","value":"17.64","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"12","product":{"id":"12","name":"Paprika","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"paprika.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.31","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"14","product":{"id":"14","name":"Radish","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"7","qu_id_stock":"7","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2","amount_aggregated":"2.0","value":"9.86","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"23","product":{"id":"23","name":"Milk","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"10","qu_id_stock":"10","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"418","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}],"overdue_products":[{"amount":"25","amount_aggregated":"25.0","value":"3019.09","best_before_date":"2019-05-04","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"4","product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.67","best_before_date":"2022-04-20","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"13","product":{"id":"13","name":"Cucumber","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"cucumber.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.34","best_before_date":"2022-04-20","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"15","product":{"id":"15","name":"Tomato","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"tomato.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"1","amount_aggregated":"1.0","value":"1.74","best_before_date":"2022-04-21","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"2","product_id":"20","product":{"id":"20","name":"Minced
+        meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":"20.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}],"expired_products":[{"amount":"1","amount_aggregated":"1.0","value":"1.74","best_before_date":"2022-04-21","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"2","product_id":"20","product":{"id":"20","name":"Minced
+        meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":"20.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}],"missing_products":[{"id":"1","name":"Cookies","amount_missing":"8","is_partly_in_stock":"0"},{"id":"2","name":"Chocolate","amount_missing":"3.0","is_partly_in_stock":"1"},{"id":"3","name":"Gummy
+        bears","amount_missing":"4.0","is_partly_in_stock":"1"}]}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -40,18 +35,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 20:01:20 GMT
+      - Fri, 22 Apr 2022 08:40:25 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -63,26 +56,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/12
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81UTW/bMAz9K4PObRAnaYv4B+zc+zAQikzbWmRJlaVkWbH/PlKK42QIih522CVw
-        +PFEPj7yXfjgmqSiqN+FbkQtqpV4EFYOSN+v0ge9l2RocFRB+6idFbVNxjxMidAFlzzk3CeKlCrq
-        AydX9Mc4JTmnuBl57J332nZw4yqIb4niwKegejkyBCcU4xid2s+Wll5x4RIK0cEUUS2WlDVoWywg
-        B5cstSfY3GArk4mww5F/WhcQGnkayf3ygRtkGzGA80jdfwh0jmwD4i/q8nPRsZfHOdhrFRPV1WqD
-        cB6EL4NY/PAdlYlW7sgXJUUdUXd9hF7axswYVy4uIVNiXQTVo9qfiWmToSfMgDYCEQEBlfbIVDBT
-        nsDJcVZHnl8ZkpLGBZ3jqtWaIlUakpER4W/OwbUwpt2EMSE3iUo/+Ukib0lTScrZMQ04T6uMsdcN
-        AsknDxfcAcNB4/FcYnBHUAHp6QaiHmikcvDkWy1X1eNy9Vitv1TbelPV62fxe9brTgblSM+i/vad
-        FCpJCZPkWP9T9pJ7y940IjlK96WQi6ZY8MV0kCbllraLl+eLtQRm4TBGZvYaAmTXBey4BfI+5Tnd
-        +Fly1N5NWBnnJOW3JG3U8QTJ6rmTyzpfb7NGhVTanV3+PJUbAmBRgjcpSENVvzLsSOZiYS0NRC7z
-        Razflpd7+29qK7MPmlipxWax5RMgDx0JtpjWiy0P2BlijFfhxpqT71+zfLem+dwPKWqy+DMC70ND
-        CqAaJu1V/Ox0IO/R9TXopvsns9Qj5GOFgd5f8p5I2jLZIYw9mhaMbqcTuV6R2L3TBgKvu8eg6ESI
-        evkgCGWW6LzEhPcHq7TvJmEGAAA=
+      string: '{"product":{"id":"12","name":"Paprika","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"paprika.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":"2022-04-12","last_used":null,"stock_amount":"5","stock_value":"17.64","stock_amount_opened":"0","stock_amount_aggregated":"5.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"2","name":"Piece","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Pieces","plural_forms":null},"quantity_unit_stock":{"id":"2","name":"Piece","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Pieces","plural_forms":null},"last_price":"2.6325","avg_price":"3.53","oldest_price":"4.1575","current_price":"4.1575","last_shopping_location_id":"2","default_shopping_location_id":null,"next_due_date":"2022-04-24","location":{"id":"2","name":"Fridge","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","is_freezer":"0"},"average_shelf_life_days":32,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -92,18 +77,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 20:01:20 GMT
+      - Fri, 22 Apr 2022 08:40:25 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -115,26 +98,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/14
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81UTW/bMAz9K4PObRAnTbf6uMN+wK7DQCgybQuVJVWWknVF//tIyY6TrS1y3CWI
-        +fFEPj7yRfjgmqSiqF+EbkQtqjtxI6wckP5/l40ee/pucFRB+6idFbVNxtzMedAFlzzk1B1FShX1
-        gXMr+jBOSc4p7g1Zxt55r20HF66C+JQoDnwKqpcjQ3ymhGIco1OPi6WlV1w4hUJ0MEdUqzVlDdoW
-        C8jBJUvdCTY32MpkIuxx5J/WBYRGPo8T8ntukG3EAM4jdf8h0BTZBsTf1OV10bGXxyXYaxUT1dVq
-        g1DmUOhBK/dkipKcR9RdH6GXtjFL6pmLX85MWBdB9ageJz7aZAjZDGgjUP8QUGmPzAAT5AmcHJMm
-        8tjK40oaF3SOqzZbilRpSEZGhL+pBtfCmPYzxozcJCr92c/KeEqaSlLOjmnAZUhler1uEEg1eabg
-        DhgOGo9TicEdQQWkpxuIeqBJysGTb7PeVLfrzW21/VQ91HdVvb0Xr4tM9zIoRzIW9Y+fJExJApiV
-        xqqfs9fcW/amEclRui+FnKTEOi+mgzQpt7Rbfbk/WUtg1gtjZGbPIUB2XcCOWyDvLs/pws9Ko/Yu
-        wso4Z4k+JWmjjs+QrF46OS0xb860w1+TVe+s8PVUcseMB96kIA1VnWGJTmI4m1hMA7HLhBHtl/Xl
-        5v6f4sr0g1Z5dKvqgbqQh44kW0zbVcUEOkN64WW4sObkt8+Y4As3T+jtkKIni78i8EY0pIEz9VXM
-        83wZT3wx6jTMb0E3HeZX/jnI10+TL7weIV8pDFmgNDJJeyY7hLFH04LR7XwbtxuSu3faQOCF9xgU
-        HQlRrzPKItJljdfi9Q/s1oteWQYAAA==
+      string: '{"product":{"id":"14","name":"Radish","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"7","qu_id_stock":"7","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":"2022-04-12","last_used":null,"stock_amount":"5","stock_value":"16.31","stock_amount_opened":"0","stock_amount_aggregated":"5.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"7","name":"Bunch","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57","name_plural":"Bunches","plural_forms":null},"quantity_unit_stock":{"id":"7","name":"Bunch","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57","name_plural":"Bunches","plural_forms":null},"last_price":"3.6875","avg_price":"3.26","oldest_price":"4.565","current_price":"4.565","last_shopping_location_id":"2","default_shopping_location_id":null,"next_due_date":"2022-04-24","location":{"id":"2","name":"Fridge","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","is_freezer":"0"},"average_shelf_life_days":32,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -144,18 +119,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 20:01:20 GMT
+      - Fri, 22 Apr 2022 08:40:25 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -167,26 +140,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/23
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA82UzW7bMAyAX2XQuQ3iJEtXH3fYbU8wDIQi07ZQWVJlKVlW9N1HSnbcbMVaYJdd
-        gph/4s9HPgkfXJNUFPWT0I2oxWYrboSVA9L/r9o80FeDowraR+2sqG0y5mb2gi645CE77slSqqiP
-        7FnRh3FKsk9Rb0gy9s57bTu4UpWIj4nswKegejnmEGvyKNIxOvXAUSdRS++4cDGG6OBismKbQdsi
-        ATm4ZKk6weIGW5lMhAOO/NO6gNDI8/iGGmQbMYDzSPX/NdBk2QbEn1Tn+6xjL0+LsdcqJsqr1Qah
-        zKE0CK08kChKUp5Qd32EXtrGLK4vVPxy7oR1EVSP6mHqR5sMRTYD2ghUPwRU2uPcAU/BSTExkQdX
-        HlfSuKCzHY9WpSEZGRF+bzS4FsZ0mCPMcZtEiZ/9TMZj0pSQcnZMAy4jqnLGvW4QiJo8UXBHDEeN
-        p6mVwZ1ABaSnG4h6oDnKwZNus95Ut+vNbbX9UN3Xu6re7sXzgulBBuUIY1F/+05gShr/TFpmPntT
-        gB3VlrVpRFKU2ksiF5AyyAwkHKVJXNJ+VX0ix5d2GRYOkXG50siuC9hxBZx3LvlKz5hRdVdmZZYz
-        vo9J2qjjGZLVSyGXDc5bMm3wZxejwYz+Hzv8/l5+pAAcELxJQRrKu8QdSV5EzNJA7eWOUd+vM8zl
-        /U/pFQCCVhnI1d1+wxXKY0fcFuF2tb4nkTMEDe/DlTS7v37L8uGb5/S6SYHK4o8IvBYNkcAgzABz
-        JvN5vPSMmZsm+iXopvvniTLoeoR8qDBkTGlskpZNdghjj6YFo9v5PO7uCG/vtIHAW+8xKLoTol7n
-        KAuqyy6vxfMvuR/Y9FwGAAA=
+      string: '{"product":{"id":"23","name":"Milk","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"10","qu_id_stock":"10","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"418","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":"2022-03-13","last_used":null,"stock_amount":"2","stock_value":"9.86","stock_amount_opened":"0","stock_amount_aggregated":"2.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"10","name":"Bottle","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57","name_plural":"Bottles","plural_forms":null},"quantity_unit_stock":{"id":"10","name":"Bottle","description":null,"row_created_timestamp":"2022-04-22
+        08:37:57","name_plural":"Bottles","plural_forms":null},"last_price":"5.55","avg_price":"4.93","oldest_price":"4.305","current_price":"4.305","last_shopping_location_id":"1","default_shopping_location_id":null,"next_due_date":"2022-04-24","location":{"id":"2","name":"Fridge","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","is_freezer":"0"},"average_shelf_life_days":47,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -196,18 +161,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 20:01:20 GMT
+      - Fri, 22 Apr 2022 08:40:25 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_stock/TestStock.test_get_expired_products_empty.yaml b/test/cassettes/test_stock/TestStock.test_get_expired_products_empty.yaml
deleted file mode 100644
index 7092d22..0000000
--- a/test/cassettes/test_stock/TestStock.test_get_expired_products_empty.yaml
+++ /dev/null
@@ -1,250 +0,0 @@
-interactions:
-- request:
-    body: null
-    headers:
-      Accept-Encoding:
-      - gzip, deflate
-      Connection:
-      - keep-alive
-      User-Agent:
-      - python-requests/2.25.1
-      accept:
-      - application/json
-    method: GET
-    uri: https://localhost/api/stock/volatile
-  response:
-    body:
-      string: !!binary |
-        H4sIAAAAAAAEA+1aS2/jNhD+K4TOjhDZSTbxrVgUvbRA0fZSFAuClsYy15Ko8OE0DfLfO0NRtuRX
-        vQvHSQEdfOAMNaTJ+fjNDPkSZQ54rVXmUmui6V9fRpFagd6SvkSiVK6y0TS6jUahwUWea8iFhYzk
-        8TVqVqJwgK0kicfYnIGxfAZzpYFn2BE14+txcnU9ubruGFI1VN4ImWhG4o2sPwappenI+HpapKJJ
-        2+faj4/N8K+49NPbCKLpS7SWVaKk/j/muSELYFItaytVFU0rVxQbK7lWrt7YEqmVq3akQqWCvmnU
-        9MfNQtW1rHLeUzUWHx3247XT6UIYMjHBDxqhsSpd0iI1kjmOovS6K7eKtz2Sa7/epawa0dZKwFy4
-        gpa+u/7PuMGRX6gDai7mFrRf+tN6zjXAP/g3T+ttF+Jp07mWqXXoF3NZAG+2oVkfqMQMRVag8glk
-        vrB8Iaqs2HzaUdHIfiUqZXm6gHQZ1mPuCrRclFBZjv7HNaSyhnYFajSOiq6LNIOnolBa+n7JmDYm
-        daUr0HX59lJzNefGzVobreUtJ3x0EqeUqsq4EjablPg5L2QGHN3Gbyon3K0kPIXF1OqJpxoIXtzK
-        EndSlDXqGgCNr5IJSx6mN8l0che9vo6+GaLju3iS4B/s+0gHo+Or8SfU9/AY5taTdfC43o3vROkD
-        jhf2ZI1SkgWU/qlypy22T8PpHc3+jDgle32cBskxnA4wJQSvHWOA6ZqyOgR4jElv44R6HoQpUql3
-        dE/QgTbfGKYJkcg2Tr0wAPXzAgCp7b2AukuoQTIAdeDTb+fTG3TkwHg9oN74s70Nee/jhKjqIE6R
-        TskLe9T51jglft/BKQlbnKoiY6nDyH8LqtHPGLKXTNYYtrBMYUzEjLQMg2U7YhTNgAWM3pgRGfZJ
-        MTRjUEirR8xAxjIpSlapypXPDKQuVcYslDUakdVKZphIMGdZIWY4CAPbDACsFHklmCjko3tGA6AF
-        Dra2t1KFq60TMfvBMgyVFANl6GuRps5Qf8u+OgylWObwR3MGrwfBNMxcGbPfcdIsxXkKthQmY7mb
-        gcYcphrhbHEkwaxYylKg3ogKw1P83lh2eC3iI7phnTY+E2/8kHcSqXMHaMO5P+RRy0vnUclD/Ikc
-        +cjB7wO4ix78VEDYOfhJGA7+X0Wt5VKg4LRUyseqZ0ylQoED6yBtQeOEksd3plKUxGYftOIR1c1G
-        xF/rHKc5lD58ferNSx9JfH80p8LqCkVJF4UskdcOZEnYxmoOS1EYr6BkwOx7VimxJNjsxADaS9Yr
-        k9v4/sPxLKWGO6AlYQDtb5gfmcW7QZaor1+xDJI3KIR8ZJodLhYueLGAQL0j3joWEF+cXYnud4BK
-        wgDUPxSm/QrbA7e+K7davw8Ds56HWSmp2le5HPcql3dxco8dj+HV538XvGHwpdJtvHphwOsvslie
-        jNZz15n8VUefV1vRGxDrcGPvr5tOubFHj/if3NfjOxv4u5YaL/eDm4fXN6U0BsvpXWl4rtKr26sl
-        PVJYozt8hfcJhGS8fccHDrZ45u3zEH/RQI8E/MMXOhbarHKhUkXvG/bZmvhjYq+1JFpb6+SoP7kS
-        S/4zEHrv3Cgw/i9rneD5s5am3muIjqNDhr68/gsqXCVT1SQAAA==
-    headers:
-      Access-Control-Allow-Headers:
-      - '*'
-      Access-Control-Allow-Methods:
-      - GET, POST, PUT, DELETE, OPTIONS
-      Access-Control-Allow-Origin:
-      - '*'
-      Connection:
-      - keep-alive
-      Content-Encoding:
-      - gzip
-      Content-Type:
-      - application/json
-      Date:
-      - Thu, 27 May 2021 09:45:47 GMT
-      Server:
-      - nginx/1.18.0
-      Transfer-Encoding:
-      - chunked
-      X-Powered-By:
-      - PHP/7.4.14
-    status:
-      code: 200
-      message: OK
-- request:
-    body: null
-    headers:
-      Accept-Encoding:
-      - gzip, deflate
-      Connection:
-      - keep-alive
-      User-Agent:
-      - python-requests/2.25.1
-      accept:
-      - application/json
-    method: GET
-    uri: https://localhost/api/stock/volatile
-  response:
-    body:
-      string: !!binary |
-        H4sIAAAAAAAEA+1aS2/jNhD+K4TOjhDZSTbxrVgUvbRA0fZSFAuClsYy15Ko8OE0DfLfO0NRtuRX
-        vQvHSQEdfOAMNaTJ+fjNDPkSZQ54rVXmUmui6V9fRpFagd6SvkSiVK6y0TS6jUahwUWea8iFhYzk
-        8TVqVqJwgK0kicfYnIGxfAZzpYFn2BE14+txcnU9ubruGFI1VN4ImWhG4o2sPwappenI+HpapKJJ
-        2+faj4/N8K+49NPbCKLpS7SWVaKk/j/muSELYFItaytVFU0rVxQbK7lWrt7YEqmVq3akQqWCvmnU
-        9MfNQtW1rHLeUzUWHx3247XT6UIYMjHBDxqhsSpd0iI1kjmOovS6K7eKtz2Sa7/epawa0dZKwFy4
-        gpa+u/7PuMGRX6gDai7mFrRf+tN6zjXAP/g3T+ttF+Jp07mWqXXoF3NZAG+2oVkfqMQMRVag8glk
-        vrB8Iaqs2HzaUdHIfiUqZXm6gHQZ1mPuCrRclFBZjv7HNaSyhnYFajSOiq6LNIOnolBa+n7JmDYm
-        daUr0HX59lJzNefGzVobreUtJ3x0EqeUqsq4EjablPg5L2QGHN3Gbyon3K0kPIXF1OqJpxoIXtzK
-        EndSlDXqGgCNr5IJSx6mN8l0che9vo6+GaLju3iS4B/s+0gHo+Or8SfU9/AY5taTdfC43o3vROkD
-        jhf2ZI1SkgWU/qlypy22T8PpHc3+jDgle32cBskxnA4wJQSvHWOA6ZqyOgR4jElv44R6HoQpUql3
-        dE/QgTbfGKYJkcg2Tr0wAPXzAgCp7b2AukuoQTIAdeDTb+fTG3TkwHg9oN74s70Nee/jhKjqIE6R
-        TskLe9T51jglft/BKQlbnKoiY6nDyH8LqtHPGLKXTNYYtrBMYUzEjLQMg2U7YhTNgAWM3pgRGfZJ
-        MTRjUEirR8xAxjIpSlapypXPDKQuVcYslDUakdVKZphIMGdZIWY4CAPbDACsFHklmCjko3tGA6AF
-        Dra2t1KFq60TMfvBMgyVFANl6GuRps5Qf8u+OgylWObwR3MGrwfBNMxcGbPfcdIsxXkKthQmY7mb
-        gcYcphrhbHEkwaxYylKg3ogKw1P83lh2eC3iI7phnTY+E2/8kHcSqXMHaMO5P+RRy0vnUclD/Ikc
-        +cjB7wO4ix78VEDYOfhJGA7+X0Wt5VKg4LRUyseqZ0ylQoED6yBtQeOEksd3plKUxGYftOIR1c1G
-        xF/rHKc5lD58ferNSx9JfH80p8LqCkVJF4UskdcOZEnYxmoOS1EYr6BkwOx7VimxJNjsxADaS9Yr
-        k9v4/sPxLKWGO6AlYQDtb5gfmcW7QZaor1+xDJI3KIR8ZJodLhYueLGAQL0j3joWEF+cXYnud4BK
-        wgDUPxSm/QrbA7e+K7davw8Ds56HWSmp2le5HPcql3dxco8dj+HV538XvGHwpdJtvHphwOsvslie
-        jNZz15n8VUefV1vRGxDrcGPvr5tOubFHj/if3NfjOxv4u5YaL/eDm4fXN6U0BsvpXWl4rtKr26sl
-        PVJYozt8hfcJhGS8fccHDrZ45u3zEH/RQI8E/MMXOhbarHKhUkXvG/bZmvhjYq+1JFpb6+SoP7kS
-        S/4zEHrv3Cgw/i9rneD5s5am3muIjqNDhr68/gsqXCVT1SQAAA==
-    headers:
-      Access-Control-Allow-Headers:
-      - '*'
-      Access-Control-Allow-Methods:
-      - GET, POST, PUT, DELETE, OPTIONS
-      Access-Control-Allow-Origin:
-      - '*'
-      Connection:
-      - keep-alive
-      Content-Encoding:
-      - gzip
-      Content-Type:
-      - application/json
-      Date:
-      - Thu, 27 May 2021 09:46:01 GMT
-      Server:
-      - nginx/1.18.0
-      Transfer-Encoding:
-      - chunked
-      X-Powered-By:
-      - PHP/7.4.14
-    status:
-      code: 200
-      message: OK
-- request:
-    body: null
-    headers:
-      Accept-Encoding:
-      - gzip, deflate
-      Connection:
-      - keep-alive
-      User-Agent:
-      - python-requests/2.25.1
-      accept:
-      - application/json
-    method: GET
-    uri: https://localhost/api/stock/volatile
-  response:
-    body:
-      string: !!binary |
-        H4sIAAAAAAAEA+1aS2/jNhD+K4TOjhDZSTbxrVgUvbRA0fZSFAuClsYy15Ko8OE0DfLfO0NRtuRX
-        vQvHSQEdfOAMNaTJ+fjNDPkSZQ54rVXmUmui6V9fRpFagd6SvkSiVK6y0TS6jUahwUWea8iFhYzk
-        8TVqVqJwgK0kicfYnIGxfAZzpYFn2BE14+txcnU9ubruGFI1VN4ImWhG4o2sPwappenI+HpapKJJ
-        2+faj4/N8K+49NPbCKLpS7SWVaKk/j/muSELYFItaytVFU0rVxQbK7lWrt7YEqmVq3akQqWCvmnU
-        9MfNQtW1rHLeUzUWHx3247XT6UIYMjHBDxqhsSpd0iI1kjmOovS6K7eKtz2Sa7/epawa0dZKwFy4
-        gpa+u/7PuMGRX6gDai7mFrRf+tN6zjXAP/g3T+ttF+Jp07mWqXXoF3NZAG+2oVkfqMQMRVag8glk
-        vrB8Iaqs2HzaUdHIfiUqZXm6gHQZ1mPuCrRclFBZjv7HNaSyhnYFajSOiq6LNIOnolBa+n7JmDYm
-        daUr0HX59lJzNefGzVobreUtJ3x0EqeUqsq4EjablPg5L2QGHN3Gbyon3K0kPIXF1OqJpxoIXtzK
-        EndSlDXqGgCNr5IJSx6mN8l0che9vo6+GaLju3iS4B/s+0gHo+Or8SfU9/AY5taTdfC43o3vROkD
-        jhf2ZI1SkgWU/qlypy22T8PpHc3+jDgle32cBskxnA4wJQSvHWOA6ZqyOgR4jElv44R6HoQpUql3
-        dE/QgTbfGKYJkcg2Tr0wAPXzAgCp7b2AukuoQTIAdeDTb+fTG3TkwHg9oN74s70Nee/jhKjqIE6R
-        TskLe9T51jglft/BKQlbnKoiY6nDyH8LqtHPGLKXTNYYtrBMYUzEjLQMg2U7YhTNgAWM3pgRGfZJ
-        MTRjUEirR8xAxjIpSlapypXPDKQuVcYslDUakdVKZphIMGdZIWY4CAPbDACsFHklmCjko3tGA6AF
-        Dra2t1KFq60TMfvBMgyVFANl6GuRps5Qf8u+OgylWObwR3MGrwfBNMxcGbPfcdIsxXkKthQmY7mb
-        gcYcphrhbHEkwaxYylKg3ogKw1P83lh2eC3iI7phnTY+E2/8kHcSqXMHaMO5P+RRy0vnUclD/Ikc
-        +cjB7wO4ix78VEDYOfhJGA7+X0Wt5VKg4LRUyseqZ0ylQoED6yBtQeOEksd3plKUxGYftOIR1c1G
-        xF/rHKc5lD58ferNSx9JfH80p8LqCkVJF4UskdcOZEnYxmoOS1EYr6BkwOx7VimxJNjsxADaS9Yr
-        k9v4/sPxLKWGO6AlYQDtb5gfmcW7QZaor1+xDJI3KIR8ZJodLhYueLGAQL0j3joWEF+cXYnud4BK
-        wgDUPxSm/QrbA7e+K7davw8Ds56HWSmp2le5HPcql3dxco8dj+HV538XvGHwpdJtvHphwOsvslie
-        jNZz15n8VUefV1vRGxDrcGPvr5tOubFHj/if3NfjOxv4u5YaL/eDm4fXN6U0BsvpXWl4rtKr26sl
-        PVJYozt8hfcJhGS8fccHDrZ45u3zEH/RQI8E/MMXOhbarHKhUkXvG/bZmvhjYq+1JFpb6+SoP7kS
-        S/4zEHrv3Cgw/i9rneD5s5am3muIjqNDhr68/gsqXCVT1SQAAA==
-    headers:
-      Access-Control-Allow-Headers:
-      - '*'
-      Access-Control-Allow-Methods:
-      - GET, POST, PUT, DELETE, OPTIONS
-      Access-Control-Allow-Origin:
-      - '*'
-      Connection:
-      - keep-alive
-      Content-Encoding:
-      - gzip
-      Content-Type:
-      - application/json
-      Date:
-      - Thu, 27 May 2021 10:31:49 GMT
-      Server:
-      - nginx/1.18.0
-      Transfer-Encoding:
-      - chunked
-      X-Powered-By:
-      - PHP/7.4.14
-    status:
-      code: 200
-      message: OK
-- request:
-    body: null
-    headers:
-      Accept-Encoding:
-      - gzip, deflate
-      Connection:
-      - keep-alive
-      User-Agent:
-      - python-requests/2.25.1
-      accept:
-      - application/json
-    method: GET
-    uri: https://localhost/api/stock/volatile
-  response:
-    body:
-      string: !!binary |
-        H4sIAAAAAAAEA+1aS2/jNhD+K4TOjhDZSTbxrVgUvbRA0fZSFAuClsYy15Ko8OE0DfLfO0NRtuRX
-        vQvHSQEdfOAMNaTJ+fjNDPkSZQ54rVXmUmui6V9fRpFagd6SvkSiVK6y0TS6jUahwUWea8iFhYzk
-        8TVqVqJwgK0kicfYnIGxfAZzpYFn2BE14+txcnU9ubruGFI1VN4ImWhG4o2sPwappenI+HpapKJJ
-        2+faj4/N8K+49NPbCKLpS7SWVaKk/j/muSELYFItaytVFU0rVxQbK7lWrt7YEqmVq3akQqWCvmnU
-        9MfNQtW1rHLeUzUWHx3247XT6UIYMjHBDxqhsSpd0iI1kjmOovS6K7eKtz2Sa7/epawa0dZKwFy4
-        gpa+u/7PuMGRX6gDai7mFrRf+tN6zjXAP/g3T+ttF+Jp07mWqXXoF3NZAG+2oVkfqMQMRVag8glk
-        vrB8Iaqs2HzaUdHIfiUqZXm6gHQZ1mPuCrRclFBZjv7HNaSyhnYFajSOiq6LNIOnolBa+n7JmDYm
-        daUr0HX59lJzNefGzVobreUtJ3x0EqeUqsq4EjablPg5L2QGHN3Gbyon3K0kPIXF1OqJpxoIXtzK
-        EndSlDXqGgCNr5IJSx6mN8l0che9vo6+GaLju3iS4B/s+0gHo+Or8SfU9/AY5taTdfC43o3vROkD
-        jhf2ZI1SkgWU/qlypy22T8PpHc3+jDgle32cBskxnA4wJQSvHWOA6ZqyOgR4jElv44R6HoQpUql3
-        dE/QgTbfGKYJkcg2Tr0wAPXzAgCp7b2AukuoQTIAdeDTb+fTG3TkwHg9oN74s70Nee/jhKjqIE6R
-        TskLe9T51jglft/BKQlbnKoiY6nDyH8LqtHPGLKXTNYYtrBMYUzEjLQMg2U7YhTNgAWM3pgRGfZJ
-        MTRjUEirR8xAxjIpSlapypXPDKQuVcYslDUakdVKZphIMGdZIWY4CAPbDACsFHklmCjko3tGA6AF
-        Dra2t1KFq60TMfvBMgyVFANl6GuRps5Qf8u+OgylWObwR3MGrwfBNMxcGbPfcdIsxXkKthQmY7mb
-        gcYcphrhbHEkwaxYylKg3ogKw1P83lh2eC3iI7phnTY+E2/8kHcSqXMHaMO5P+RRy0vnUclD/Ikc
-        +cjB7wO4ix78VEDYOfhJGA7+X0Wt5VKg4LRUyseqZ0ylQoED6yBtQeOEksd3plKUxGYftOIR1c1G
-        xF/rHKc5lD58ferNSx9JfH80p8LqCkVJF4UskdcOZEnYxmoOS1EYr6BkwOx7VimxJNjsxADaS9Yr
-        k9v4/sPxLKWGO6AlYQDtb5gfmcW7QZaor1+xDJI3KIR8ZJodLhYueLGAQL0j3joWEF+cXYnud4BK
-        wgDUPxSm/QrbA7e+K7davw8Ds56HWSmp2le5HPcql3dxco8dj+HV538XvGHwpdJtvHphwOsvslie
-        jNZz15n8VUefV1vRGxDrcGPvr5tOubFHj/if3NfjOxv4u5YaL/eDm4fXN6U0BsvpXWl4rtKr26sl
-        PVJYozt8hfcJhGS8fccHDrZ45u3zEH/RQI8E/MMXOhbarHKhUkXvG/bZmvhjYq+1JFpb6+SoP7kS
-        S/4zEHrv3Cgw/i9rneD5s5am3muIjqNDhr68/gsqXCVT1SQAAA==
-    headers:
-      Access-Control-Allow-Headers:
-      - '*'
-      Access-Control-Allow-Methods:
-      - GET, POST, PUT, DELETE, OPTIONS
-      Access-Control-Allow-Origin:
-      - '*'
-      Connection:
-      - keep-alive
-      Content-Encoding:
-      - gzip
-      Content-Type:
-      - application/json
-      Date:
-      - Thu, 27 May 2021 10:32:04 GMT
-      Server:
-      - nginx/1.18.0
-      Transfer-Encoding:
-      - chunked
-      X-Powered-By:
-      - PHP/7.4.14
-    status:
-      code: 200
-      message: OK
-version: 1
diff --git a/test/cassettes/test_stock/TestStock.test_get_expired_products_valid.yaml b/test/cassettes/test_stock/TestStock.test_get_expired_products_valid.yaml
index b3b7330..515508d 100644
--- a/test/cassettes/test_stock/TestStock.test_get_expired_products_valid.yaml
+++ b/test/cassettes/test_stock/TestStock.test_get_expired_products_valid.yaml
@@ -7,38 +7,25 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/volatile
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA+1aS2/jNhD+K4TOjhDZSTbxbREUvbRA0fZSFAuCpmiZa0lU+HCaBvnvnaEoWbId
-        Q7twnHShgw4aUkOKnI/fPPgcpU7QSqvUcWui+d9fJpHaCL0jfY5YoVxpo3l0HU3CC2VZpkXGrEhR
-        Hl9Cy4blTsBbksRTeF0IY+lCLJUWNIWO0DK9nCYXl7OLy44iVYnSK0EV9Ui0lvXHwGZpOjLaTgub
-        cNL2qfLjw2v4Kyr99LaCaP4ctbKSFdj/pywzqEEYrmVlpSqjeenyfKsl08pVW12MW7lpRsoVZ/hN
-        3Yw/blaqqmSZ0V5TrfHBQT9aOc1XzKCKGXxQC41VfI2LVEuWMIrSbVdqFW16JJd+vQtZ1qKdlRBL
-        5nJc+u76P8EGR36hXmmmbGmF9ks/rOdSC/Ev/Oaw3nbFHredK8mtA7tYylzQehvq9RElW4DIMmh8
-        FDJbWbpiZZpvP+004ch+JUplKV8Jvg7rsXQ5aM4LUVoK9ke14LISzQpUoBwauiZSD85ZrrT0/ZIp
-        bgx3hcvBdOnuUlO1pMYtGh2N5h0jfHASpsRVaVwhtpuU+DmvZCoomI3fVIq420jxGBZTq0fKtUB4
-        USsL2ElWVNBWA2h6kcxIcje/Suazm+jlZfLNEJ3exLMEfrBvIx2MTi+mn6C9h8cwt56sg8d2N74T
-        pXcwXtiTFqUoCyj9S2VOW3gfhtMbnP0JcYr6+jgNkmM4HWGKCG4NY4RpS1kdAjzGpNdxgj1fhSlQ
-        qTd0T9CBNt8YpgmSyC5OvTAA9X4lBFDbewF1n1CDZATqyKffzqdXYMiB8XpAvfJne+Py3sYJUtWr
-        OAU6RSvsUedb4xT5fQ+nKGxwqvKUcAee/w5Uo1/AZS+IrMBtIakCn4gYaQk4y3ZC0JsRVoD3RgxL
-        oQ8H14yIXFo9IUakJJWsIKUqXfFEhNSFSokVRQVKZLmRKQQSxFmSswUMQoStBxCkYFnJCMvlg3sC
-        BUIzGKzVt1G5q6xjMflsCbhKighl8GvGuTPY35KvDlwpkjp4cM7CtwtGtFi4IiZ/wKQJh3kysmYm
-        JZlbCA0xTDmB2cJIjFi2lgWDdsNKcE/he2PJ62sRH2kb12lrM/HWDmknkDq1gzae+2MctT53HJXc
-        xZ/QkI8c/N6BO+vBjwmEvYMfheHg/41VWq4ZCIaFUt5XPWEoFRIckAdpEhoDUh7fGUphEJt+0IxH
-        VNUbEX+tMpjmmPrw+ak3T30k8e3RmAqyK+glnRWySF57kEVh46s5SEWBvwKSEbPvmaWElGC9EyNo
-        z5mvTK7j2w/Hsxga7oEWhQG0v0N8ZFbvBlmkvn7GMkjeIBHykWl2LCycsbAAQL1B3jrmEJ+dXZHu
-        94CKwgDUPxWE/QreR259V261fh9GZj0Ns2JQdShzOe1lLm/i5BY6HsOrj//OWGHwqdJdvHphwOuv
-        Ml8PRuup80y+1NHn1Ub0BsQ6Vux9uWlIxR4s4n9Sr4d7NuKfSmoo7gczx9s3nSJ+hyF7RYf65kBT
-        dLiK0e06htzOETD4mo0/HYaV8FF9+IFw++VQbXCKwha5JYcaQQE3G0A4jG7Roz5lJf9HSBQntwMO
-        hu2VG79R+1du4DrJj0a2+KfnunYDMC6kMVD/6sPY3y/rFdrUGm8VtXQcvoICIFIvYA1uJNn8iTb3
-        uXxlEG/1eE34SwE+9yvFFV5IOqRr1iB3X1sStdo6SaWfXQE1uoVg+uDcEHcH59bR1ol277U01UFF
-        6D+8pujLy3+VxNCchigAAA==
+      string: '{"due_products":[{"amount":"5","amount_aggregated":"5.0","value":"17.64","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"12","product":{"id":"12","name":"Paprika","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"paprika.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.31","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"14","product":{"id":"14","name":"Radish","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"7","qu_id_stock":"7","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2","amount_aggregated":"2.0","value":"9.86","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"23","product":{"id":"23","name":"Milk","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"10","qu_id_stock":"10","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"418","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}],"overdue_products":[{"amount":"25","amount_aggregated":"25.0","value":"3019.09","best_before_date":"2019-05-04","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"4","product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.67","best_before_date":"2022-04-20","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"13","product":{"id":"13","name":"Cucumber","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"cucumber.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.34","best_before_date":"2022-04-20","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"15","product":{"id":"15","name":"Tomato","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"tomato.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"1","amount_aggregated":"1.0","value":"1.74","best_before_date":"2022-04-21","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"2","product_id":"20","product":{"id":"20","name":"Minced
+        meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":"20.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}],"expired_products":[{"amount":"1","amount_aggregated":"1.0","value":"1.74","best_before_date":"2022-04-21","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"2","product_id":"20","product":{"id":"20","name":"Minced
+        meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":"20.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}],"missing_products":[{"id":"1","name":"Cookies","amount_missing":"8","is_partly_in_stock":"0"},{"id":"2","name":"Chocolate","amount_missing":"3.0","is_partly_in_stock":"1"},{"id":"3","name":"Gummy
+        bears","amount_missing":"4.0","is_partly_in_stock":"1"}]}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -48,18 +35,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 07:22:02 GMT
+      - Fri, 22 Apr 2022 08:40:25 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -71,26 +56,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/20
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81UwW7bMAz9lULntrDTrlv9AbsN2H0YCEambbWypMpSsq7ov4+07KQZgm677RLE
-        JPXEx/eoFxWib7NOqnlRplWN2lTqUjkcif9/MU5TezESJg62NOloQjLeqcZlay/Xw9BHnwPM52+5
-        EnUyOwGo+cN6jXKmpDccmQYfgnE9nKQK4lPmOgg56gEngbjhAyU4Ja8fj5GOb/HxUArJw1pRXwuJ
-        0bgSARx9dkxRSbilDrNNsKVJfjofCVp8nv6QBuwSRfCBmP27QEtlF4l+Mkuurj+9d/FSnwbcl3KZ
-        UTA6Ze6sM5ZgkWNTXT+EnpPkcMvhhFywJ9MPCQZ0rS3H5a43Kel2nofzCfRA+nGZSpcto9uRXAKe
-        AkTSJtA6h8DgnFjsMYtXFNJofTRzXb0RdXQes8VE8PvAwXcw5e2KsSK3mVt/DiKuMH3KhlvS3k15
-        pKNURcPBtATsnVlZ8DuKO0P7RYDo96Ajm5NaSGZkPXEMglpt6qtqc1XfXNT3zW3d3Nyp16NZtxi1
-        ZzOr5tt3tieyDVa/lQUopyvhNmfzRJwo7EsjB0OJwUtohzYLpdvrj4dYKZs9Iwiza94CAPZ9pF4I
-        cLYwPsmL25jcSVkRc3XxU0aXTHqG7MyRx2GbhcPinq/I23N2i/9+jrLcAgfB5oiWmxbUiaMlID4a
-        ebAyK574aXMzs/+ks6J6NLpIdnf/gTngrmevrjGR0Vv2iSzB2+B89vwbNht6leZ8SbGRox8JZBFa
-        Fp/HeLCsbMT6LB5mJcFFxc/RtD3x95nX+N90NBPMTxTF2ZksF/J6YU8wDWQ7sKZbH8Z7NnnwxkKU
-        NQ8UNT8NqqkuFYMczXlc3kq9/gJ//eiIWgYAAA==
+      string: '{"product":{"id":"20","name":"Minced meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":"20.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":"2022-04-12","last_used":null,"stock_amount":"1","stock_value":"1.74","stock_amount_opened":"0","stock_amount_aggregated":"1.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"1.735","avg_price":"1.74","oldest_price":"1.735","current_price":"1.735","last_shopping_location_id":"2","default_shopping_location_id":null,"next_due_date":"2022-04-21","location":{"id":"2","name":"Fridge","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","is_freezer":"0"},"average_shelf_life_days":9,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -100,18 +77,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 07:22:02 GMT
+      - Fri, 22 Apr 2022 08:40:25 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_stock/TestStock.test_get_missing_products_valid.yaml b/test/cassettes/test_stock/TestStock.test_get_missing_products_valid.yaml
index 340f2dd..9ddcc31 100644
--- a/test/cassettes/test_stock/TestStock.test_get_missing_products_valid.yaml
+++ b/test/cassettes/test_stock/TestStock.test_get_missing_products_valid.yaml
@@ -7,38 +7,25 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/volatile
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA+1aS2/jNhD+K4TOjhDZSTbxbREUvbRA0fZSFAuCpmiZa0lU+HCaBvnvnaEoWbId
-        Q7twnHShgw4aUkOKnI/fPPgcpU7QSqvUcWui+d9fJpHaCL0jfY5YoVxpo3l0HU3CC2VZpkXGrEhR
-        Hl9Cy4blTsBbksRTeF0IY+lCLJUWNIWO0DK9nCYXl7OLy44iVYnSK0EV9Ui0lvXHwGZpOjLaTgub
-        cNL2qfLjw2v4Kyr99LaCaP4ctbKSFdj/pywzqEEYrmVlpSqjeenyfKsl08pVW12MW7lpRsoVZ/hN
-        3Yw/blaqqmSZ0V5TrfHBQT9aOc1XzKCKGXxQC41VfI2LVEuWMIrSbVdqFW16JJd+vQtZ1qKdlRBL
-        5nJc+u76P8EGR36hXmmmbGmF9ks/rOdSC/Ev/Oaw3nbFHredK8mtA7tYylzQehvq9RElW4DIMmh8
-        FDJbWbpiZZpvP+004ch+JUplKV8Jvg7rsXQ5aM4LUVoK9ke14LISzQpUoBwauiZSD85ZrrT0/ZIp
-        bgx3hcvBdOnuUlO1pMYtGh2N5h0jfHASpsRVaVwhtpuU+DmvZCoomI3fVIq420jxGBZTq0fKtUB4
-        USsL2ElWVNBWA2h6kcxIcje/Suazm+jlZfLNEJ3exLMEfrBvIx2MTi+mn6C9h8cwt56sg8d2N74T
-        pXcwXtiTFqUoCyj9S2VOW3gfhtMbnP0JcYr6+jgNkmM4HWGKCG4NY4RpS1kdAjzGpNdxgj1fhSlQ
-        qTd0T9CBNt8YpgmSyC5OvTAA9X4lBFDbewF1n1CDZATqyKffzqdXYMiB8XpAvfJne+Py3sYJUtWr
-        OAU6RSvsUedb4xT5fQ+nKGxwqvKUcAee/w5Uo1/AZS+IrMBtIakCn4gYaQk4y3ZC0JsRVoD3RgxL
-        oQ8H14yIXFo9IUakJJWsIKUqXfFEhNSFSokVRQVKZLmRKQQSxFmSswUMQoStBxCkYFnJCMvlg3sC
-        BUIzGKzVt1G5q6xjMflsCbhKighl8GvGuTPY35KvDlwpkjp4cM7CtwtGtFi4IiZ/wKQJh3kysmYm
-        JZlbCA0xTDmB2cJIjFi2lgWDdsNKcE/he2PJ62sRH2kb12lrM/HWDmknkDq1gzae+2MctT53HJXc
-        xZ/QkI8c/N6BO+vBjwmEvYMfheHg/41VWq4ZCIaFUt5XPWEoFRIckAdpEhoDUh7fGUphEJt+0IxH
-        VNUbEX+tMpjmmPrw+ak3T30k8e3RmAqyK+glnRWySF57kEVh46s5SEWBvwKSEbPvmaWElGC9EyNo
-        z5mvTK7j2w/Hsxga7oEWhQG0v0N8ZFbvBlmkvn7GMkjeIBHykWl2LCycsbAAQL1B3jrmEJ+dXZHu
-        94CKwgDUPxWE/QreR259V261fh9GZj0Ns2JQdShzOe1lLm/i5BY6HsOrj//OWGHwqdJdvHphwOuv
-        Ml8PRuup80y+1NHn1Ub0BsQ6Vux9uWlIxR4s4n9Sr4d7NuKfSmoo7gczx9s3nSJ+hyF7RYf65kBT
-        dLiK0e06htzOETD4mo0/HYaV8FF9+IFw++VQbXCKwha5JYcaQQE3G0A4jG7Roz5lJf9HSBQntwMO
-        hu2VG79R+1du4DrJj0a2+KfnunYDMC6kMVD/6sPY3y/rFdrUGm8VtXQcvoICIFIvYA1uJNn8iTb3
-        uXxlEG/1eE34SwE+9yvFFV5IOqRr1iB3X1sStdo6SaWfXQE1uoVg+uDcEHcH59bR1ol277U01UFF
-        6D+8pujLy3+VxNCchigAAA==
+      string: '{"due_products":[{"amount":"5","amount_aggregated":"5.0","value":"17.64","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"12","product":{"id":"12","name":"Paprika","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"paprika.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.31","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"14","product":{"id":"14","name":"Radish","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"7","qu_id_stock":"7","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2","amount_aggregated":"2.0","value":"9.86","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"23","product":{"id":"23","name":"Milk","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"10","qu_id_stock":"10","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"418","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}],"overdue_products":[{"amount":"25","amount_aggregated":"25.0","value":"3019.09","best_before_date":"2019-05-04","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"4","product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.67","best_before_date":"2022-04-20","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"13","product":{"id":"13","name":"Cucumber","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"cucumber.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.34","best_before_date":"2022-04-20","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"15","product":{"id":"15","name":"Tomato","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"tomato.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"1","amount_aggregated":"1.0","value":"1.74","best_before_date":"2022-04-21","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"2","product_id":"20","product":{"id":"20","name":"Minced
+        meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":"20.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}],"expired_products":[{"amount":"1","amount_aggregated":"1.0","value":"1.74","best_before_date":"2022-04-21","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"2","product_id":"20","product":{"id":"20","name":"Minced
+        meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":"20.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}],"missing_products":[{"id":"1","name":"Cookies","amount_missing":"8","is_partly_in_stock":"0"},{"id":"2","name":"Chocolate","amount_missing":"3.0","is_partly_in_stock":"1"},{"id":"3","name":"Gummy
+        bears","amount_missing":"4.0","is_partly_in_stock":"1"}]}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -48,18 +35,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 07:22:03 GMT
+      - Fri, 22 Apr 2022 08:40:25 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -71,25 +56,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/1
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA8VUy27bMBD8lUDnJLDstGh9zQ/0XhQLmlpJbCiSoUi7bpB/71AUpSRtAwM99GLI
-        sw/u7szuU+W8baIM1f6pUk21r+rqujJiYHzeW/ugeATQ8Ci9ckFZU+1N1Pq6xFHnbXS0hAoZ1DEF
-        pzzaSpFisvkOyNhb55Tp6JUpZ3yM8CMXvezFmFLsEJDBMVj5sCItXrF+caVgqXjUtxtEDcpkhMRg
-        o0F31SfADbci6kAHHtNPaz1TI84jzCnqb2YSbWBP1jG6v8Sz9cw/0eVl3qEXp9XZKRki6mqVZpqJ
-        kJmI2++uQ5lsxAG2IOB1YtX1gXphGr3meGFKJUwjMTaQ7Fk+zINpo8YTemATCIMgz1I5kJ0bdEgO
-        wyyOib9MkhTa+iQKMLxNBMk4RC0C09uZk21pjIeSo2RuIko/uyKRx6hQkrRmjAOvbGUae9UwQT4T
-        uWSP7I+KT3OJ3p5IesbTDQU1gFIxONi2m219s9ne1Lur+vP+rt7vPlbPq14PwksLPVf7r9+gUAEl
-        FMlB/rnJCY0jL0AuoGhpAx0nQdJR6IhGlv/ZYRJKin2Li67z3KWCf7clcaGRNy5FkY9RmKDCmaJR
-        a73LziYeZql8EViUPy7s5fNKi5rSkdPRC42ZpqzpDmQg6WXAANOwMNnXxc2LOF+T/1tZZtcrCZIy
-        s+LYQZAvAKuhhST0F9gU9t6lKrS852P4R6Ak9gaEl+fL1VuYK6PGjO+xw+crGd3BCt/8K4cfkECN
-        NF0i9tPKgCqBFRId09izbkmrtty/mxqadlZp8mmXHXuJ/Z9kiiyrKpcN3Tz/AhMmQKk7BgAA
+      string: '{"product":{"id":"1","name":"Cookies","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"8","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"cookies.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":null,"last_used":null,"stock_amount":0,"stock_value":0,"stock_amount_opened":0,"stock_amount_aggregated":0,"stock_amount_opened_aggregated":0,"default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":null,"avg_price":null,"oldest_price":null,"current_price":null,"last_shopping_location_id":null,"default_shopping_location_id":null,"next_due_date":null,"location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-1,"spoil_rate_percent":0,"is_aggregated_amount":0,"has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -99,18 +77,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 07:22:03 GMT
+      - Fri, 22 Apr 2022 08:40:25 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -122,26 +98,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/2
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81UTW/bMAz9K4PObRG77db62j+w+zAQjEzbQmVJlaVkWdH/PtKK42bIgBx3CZzH
-        D/GRj3xXIfo266Sad2Va1aha3SiHI/Hny+C1t5iIoZYmHU1IxjvVuGztzRIJffQ5wBxcsSfqZHYS
-        Ln+s1ygxxfzAyDT4EIzr4cxUMr5l9oOQox5wkhT3HFDAKXn9uiIdv+LjyRWSh8Wjuttw1GhcQQBH
-        nx3zU08Mt9Rhtgm2NMlP5yNBi4eJzRL1LzNglyiCD8Tsr/HsItFvZnmddxpwvzoHo1PmujpjCcoo
-        SnvI4ZahhGzck+mHBAO61q6hn0zy8twJ5xPogfTrsR9dtpzZjuQSMH+IpE2gpQOBk7PhqIp5bOVx
-        jdZHM/tVtcxF5zGLOODvVoPvYMrbJYdkFim0mUs/hEUZb9lwSdq7KY+0DqlMbzAtAatmnin4HcWd
-        of2xmdHvQUfip1tIZuRJ4hjYVm/q6nZT31b3X6rn5qFq7r+qj1WmW4zas4xV8+MnCxNZAIvSZt0f
-        ozfCbbbmidhQ2JdCTlISPgXaoc1Cqb57+nYCi98sF0kxC+ZzBsC+j9QLA7Y+zmM6s4vQmN2ZW5nm
-        otC3jC6ZdIDszErktMVC4rjF35EX5+ICX99IWVxJB8HmiJaLlqwTowUQIY3cWWkWt/y8uJnZf1JZ
-        GXs0eplZ/cgkcNezWleQIW9ZKrIHZ+gcfvmCFY0fz8tllyIlR78SyDK0clkX2T7dVnJ5l6N4atfS
-        eXZ84V0/fNE5bD3Glp0v3OTrRyq8zQTzoaLI6TeyLMirhj3BNJDtwJpuOY/V84YlH7yxEGXpA0XN
-        h0I1DHOaVamfVll9/AEgNG7kXwYAAA==
+      string: '{"product":{"id":"2","name":"Chocolate","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"8","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"1","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":"2022-04-12","last_used":null,"stock_amount":"1","stock_value":"5.25","stock_amount_opened":"0","stock_amount_aggregated":"5.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"5.2525","avg_price":"5.25","oldest_price":"5.2525","current_price":"5.2525","last_shopping_location_id":"1","default_shopping_location_id":null,"next_due_date":"2022-10-19","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":190,"spoil_rate_percent":0,"is_aggregated_amount":"1","has_childs":true}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -151,18 +119,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 07:22:03 GMT
+      - Fri, 22 Apr 2022 08:40:26 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -174,26 +140,18 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/3
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81UwW7bMAz9lcLnJoiTdmh93WHX3YeBYGTa1ipLqiwly4r9+0g5qpshA3LcJXDI
-        R4rke+Rb5YNrk4pV81bptmqqXXVfWRyJP7+kcTzd7QnDxMaWJhW0j9rZqrHJmPsSC31wyUMOrxmJ
-        KuqDJJA/ximUmNn9wJZpcN5r28OFa874mhgHPgU14CQppJzZOEWnXhZLx6+48A6F6KAg6vWGo0Zt
-        Zwvg6JLlDqsnNrfUYTIR9jTJT+cCQYunid0S9S83YBcpgPPE3d+C7ALRL+7yNnQc8LiAvVYxcV2d
-        NgRnMnohI3Ox/uF7rpQs7tkdkYFH0v0QYUDbmiXNB5dUkadiXQQ1kHo5z6ZLhl8xI9kIPAsIpLSn
-        Mg3Pydlx1kimcOZJoXFBZ1y9FY5UGpPBSPD32MF1MKV9yVEyt4lLP/miktekuSTl7JRGWgibmRx0
-        S8AKyvyCO1A4aDqeBxvcEVQgfrqFqEdmFUfPvu1mW68221W9u6ufm4e62X2qfi+S3WNQjiVdNd++
-        s0iRxVBUJ1tQojfSW/amidgxdz8X8i6rR8bMpgOalFuq188i/o/ArB3JkdfiwoN9H6iXFtj7mHm6
-        8IvquL0L2DyaItfXhDbqeIJk9dLJtaX+irxFV7f59knKFosswZsU0HDRklWOxGwQJY08WpkWz/yy
-        uNzZf1LZzHvQSkjbrh+FSTz0LNZi2snNcIaVImtwYc3B149Zprhwcx0yK8nSzwiyCy2zLzVk1T6t
-        6i0/W+7j+7DK3Bn4mVf9dKeS3zsMLYOvnOfbCZW+9QT5ZlHg9BvZFeRNw55gGsh0YHRXLuW23rC2
-        vdMGguy8p6D4TlQNmznNotNlkznhHxvN53VsBgAA
+      string: '{"product":{"id":"3","name":"Gummy bears","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"8","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"gummybears.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":"2022-04-12","last_used":null,"stock_amount":"5","stock_value":"22.92","stock_amount_opened":"1","stock_amount_aggregated":"5.0","stock_amount_opened_aggregated":"1.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"4.72","avg_price":"4.58","oldest_price":"5.92","current_price":"5.92","last_shopping_location_id":"1","default_shopping_location_id":null,"next_due_date":"2022-10-19","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":210,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -203,71 +161,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Mon, 10 May 2021 07:22:03 GMT
+      - Fri, 22 Apr 2022 08:40:26 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
-    status:
-      code: 200
-      message: OK
-- request:
-    body: null
-    headers:
-      Accept-Encoding:
-      - gzip, deflate
-      Connection:
-      - keep-alive
-      User-Agent:
-      - python-requests/2.25.1
-      accept:
-      - application/json
-    method: GET
-    uri: https://localhost/api/stock/products/4
-  response:
-    body:
-      string: !!binary |
-        H4sIAAAAAAAEA8VVTW/bMAz9K4XPbWE76bb62j+w+zAQikzbQmVLlaVkWdH/PlKy4mQrivS0S5CQ
-        j0/8eGReC+tMG6QvmtdCtUVTbIvbYhIj0tcnp2Y70+8WZ+mU9cpMRTMFrW9zGPTOBAsxsiKkkF7t
-        OZZ/aCMFxyQ3E8+DsVZNPVy4EuNLIBzY4OQgZqbYUEAyzt7I59XS0SvGnaDgDWREdV9S1KimZAEx
-        mjBRcUXF9hY7EbSHHc780RmH0IrjTP6P3CA6jw6MRSr/GmTnEH9Tmdeh/SAOK9gq6QPl1SmNkAaR
-        +oOT2JHJC3IeUPWDh0FMrV5Dz1z8cmzFZDzIAeXz0pAuaGLWI04eqH5wKJXF3AFL5ORYNBHnlh6X
-        QhunIq6qeTAyjEELj/B3r8F0MIdd5sjMbaDUjzZL4yUoSkmaaQ4jnk0p5jyoFoFkE4cKZo9ur/Cw
-        NNOZA0iH9HQLXo00STFa8tVlXd2V9V21uakem23VbL4Ub6tOd8JJQzoumh+L0LmK80Kj8hcY8W3r
-        aluVj4+EiiLMws+KSn35SNBakMqsU5KKTujP5E5baPwS+faTlimyLdvBi5oLLrmQ6A0zkmNJjFdm
-        bewDYVI790IHnkJd3T/ElTwDRokzRxR5wqd6QfS9w567Tt6HOKYLPy8HTeQClhSYl+4liMkrf4Qw
-        KerLac/PxrHcne+Ctv3dq3N9A/MZA6uDE5qSZtaZaJOBxT+SGrhbJJPL5GJlp4vI/f1/mZ2rqNje
-        b+qvPEux77O02MjX1miS90lw2RrD31dpUVNUns77kKSlCX954AVuaf4snbhq3+4qJsiX/NSu3HkC
-        PtF9Ot7IYHdGuDa+9s8fyfUj5brVDPG4oiP6khdc0HkQPcI8oO5Aqy6f9LoqSfPWKA2OD5VFJ+m4
-        FQ2ZiWZV6rolRPgHgXRpxxEHAAA=
-    headers:
-      Access-Control-Allow-Headers:
-      - '*'
-      Access-Control-Allow-Methods:
-      - GET, POST, PUT, DELETE, OPTIONS
-      Access-Control-Allow-Origin:
-      - '*'
-      Connection:
-      - keep-alive
-      Content-Encoding:
-      - gzip
-      Content-Type:
-      - application/json
-      Date:
-      - Mon, 10 May 2021 07:22:03 GMT
-      Server:
-      - nginx/1.18.0
-      Transfer-Encoding:
-      - chunked
-      X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_stock/TestStock.test_get_overdue_products_valid.yaml b/test/cassettes/test_stock/TestStock.test_get_overdue_products_valid.yaml
index 39f4922..575de86 100644
--- a/test/cassettes/test_stock/TestStock.test_get_overdue_products_valid.yaml
+++ b/test/cassettes/test_stock/TestStock.test_get_overdue_products_valid.yaml
@@ -7,30 +7,25 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/volatile
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA+1YTVPbMBD9K4zPkIkdCJArh5460+n01mE0iizHamxLyFLSlOG/d1eSYzsEJuUr
-        UHL0av30sfu0T3sbpZYTpWVqmamjyc/biJbSViaaRGfRcfggdDbTfEYNT9E+GMLIghaWw1d8OTgf
-        w/eU14ZMeSY1Jyl4wlAyTOKTYXISd5Ck4pVDQQw/FfG2/iRDN4moO1ayXhn+i+s2K+WWAJ9hC0Tg
-        CuOktUST26g1VrTEP75RpcWcIgyvmRbKCFlFk8oWRQs109IqD+g2wIxYNNMVklH8xw/jdHUulRLV
-        jPSGPOKNBT+irGY5rd3JwA/eWBvJ5nhW3pJRZqReuxIjSeMRuxMpReUtG6fBM2oLDEA3CiuIaHTu
-        drl9mNDMcO0CAJ7uWB8ACp6Z5vwP7HI3b5PTZeusBDMWsiMTBSchEMoHYvBLzWCZvKJTGDMUvJZc
-        zHJDclqlRYvRGcIluCOppCEs52weDiazBUxRlLwyBNKRaM6E4ngUuEEF4DDQzRcfJEYLqYXzi5MR
-        eDJb2gIymWyeOZEZqe20wWiQNzLyxgpYEpNVbUveRsuHMRcpJ5A+LrhELrheCL4MS9RySZjmSDdi
-        RAkhpaWCsTWfRkfx5eQ0nozG0d3d8b9T9mxw8e4oe4qx8fdQS1k0hkz5TlNR5/C9H8Yii/qMDZZP
-        xljPlQNR3V3ydKLidR+qX6+2Jr3aOh7EF+DYv9T3W1rdzbjJU2cMPP0qivnOLMVbCCrei9XVGG/4
-        Pk0b0yvwdId6idIm3Orpm1bWd8ZTCMsHKafXxxGW4+fK4iQeXKBqfIy7MWa/U9tBAodM6dk6AhiH
-        nyWLUdVscjdGY+DulYUgTbkGy36qbFDBIJYb1ftJdTELkTgI4zcWxmOkw7siLd4i90iLxkDaH7Kk
-        Rh4ou++nrHFxOBD26YSF0st/K6Hh2RsSfqMj1SmYPdXs39RNR+p0gE+zxzjcUd+v0Y9C+LCB0B9y
-        jYeNx22CxrVorhhPj0p48+9MZHwbv6R2xouvL52D5QMp5/hiB03edqVcoLZ0pZLh/0ZjL6PepiEF
-        NC5FXWMvtEdj34Vtk/5Kyjn229YiOPwFMhdfvdD7hV6dKVakaXk6eYz9LoeEW2p0ay6ZxFbdNqxR
-        I5nvo8XRGg1zPaB9sWW5OppyqreuDXm3dW0dtE7f6kqLWm0Fwhr+END13V80yNKkmhcAAA==
+      string: '{"due_products":[{"amount":"5","amount_aggregated":"5.0","value":"17.64","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"12","product":{"id":"12","name":"Paprika","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"paprika.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.31","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"14","product":{"id":"14","name":"Radish","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"7","qu_id_stock":"7","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2","amount_aggregated":"2.0","value":"9.86","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"23","product":{"id":"23","name":"Milk","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"10","qu_id_stock":"10","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"418","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}],"overdue_products":[{"amount":"25","amount_aggregated":"25.0","value":"3019.09","best_before_date":"2019-05-04","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"4","product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.67","best_before_date":"2022-04-20","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"13","product":{"id":"13","name":"Cucumber","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"cucumber.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.34","best_before_date":"2022-04-20","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"15","product":{"id":"15","name":"Tomato","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"tomato.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"1","amount_aggregated":"1.0","value":"1.74","best_before_date":"2022-04-21","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"2","product_id":"20","product":{"id":"20","name":"Minced
+        meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":"20.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}],"expired_products":[{"amount":"1","amount_aggregated":"1.0","value":"1.74","best_before_date":"2022-04-21","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"2","product_id":"20","product":{"id":"20","name":"Minced
+        meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":"20.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}],"missing_products":[{"id":"1","name":"Cookies","amount_missing":"8","is_partly_in_stock":"0"},{"id":"2","name":"Chocolate","amount_missing":"3.0","is_partly_in_stock":"1"},{"id":"3","name":"Gummy
+        bears","amount_missing":"4.0","is_partly_in_stock":"1"}]}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -40,18 +35,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 20:05:24 GMT
+      - Fri, 22 Apr 2022 08:40:26 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -63,26 +56,61 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
+      accept:
+      - application/json
+    method: GET
+    uri: https://localhost/api/stock/products/4
+  response:
+    body:
+      string: '{"product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[{"id":"3","product_id":"4","barcode":"42141099","qu_id":"3","amount":null,"shopping_location_id":null,"last_price":null,"row_created_timestamp":"2022-04-22
+        08:37:58","note":null}],"last_purchased":"2022-04-22","last_used":"2022-04-22","stock_amount":"25","stock_value":"3019.09","stock_amount_opened":"0","stock_amount_aggregated":"25.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"150","avg_price":"120.76","oldest_price":"150","current_price":"150","last_shopping_location_id":"1","default_shopping_location_id":null,"next_due_date":"2019-05-04","location":{"id":"4","name":"Candy
+        cupboard","description":null,"row_created_timestamp":"2022-04-22 08:37:57","is_freezer":"0"},"average_shelf_life_days":-5,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
+    headers:
+      Access-Control-Allow-Headers:
+      - '*'
+      Access-Control-Allow-Methods:
+      - GET, POST, PUT, DELETE, OPTIONS
+      Access-Control-Allow-Origin:
+      - '*'
+      Connection:
+      - keep-alive
+      Content-Type:
+      - application/json
+      Date:
+      - Fri, 22 Apr 2022 08:40:26 GMT
+      Server:
+      - nginx/1.20.2
+      Transfer-Encoding:
+      - chunked
+      X-Powered-By:
+      - PHP/8.0.13
+    status:
+      code: 200
+      message: OK
+- request:
+    body: null
+    headers:
+      Accept-Encoding:
+      - gzip, deflate
+      Connection:
+      - keep-alive
+      User-Agent:
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/13
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81UTW/bMAz9K4PObRA7Sdf5OmDn3YeBUGTa1ipLij6SZcX++yjJjpMhKHrYYZcg
-        5pfI9x75yqwzbRSBNa9Mtqxh1YY9MM1HpP+fo4jjHh1ZWvTCSRuk0azRUamHORN6Z6KFnLyjSC6C
-        PKbsij6UETzlFHdNFj8Ya6Xu4cZVKh4ixYGNTgzcpxIpoRh9MOJlsXT0inGXUAgG5ohqtaasUepi
-        AT6aqGk+lswtdjyqAHv06aczDqHlZ0/uj2+4gXcBHRiLNP2bhabIziH+oinfFx0GflqCrRQhUl+d
-        VAgTE2JiYvXD9tQnar4nZ+AUdkLZDwEGrlu1FLlypR4yJtoEEAOKlwmZLip6Q42oAxAS4FBIiwmL
-        BJWl4uSY9JEJLCwJroyTOa6qk1pIJFHxgPA36GA68HE/15grt5FaP9tZI4coqSVhtI8jLnQVHgfZ
-        IpB+MrtgjuiOEk9Ti86cQDikp1sIciRO+WjJV6/r6nFdP1abD9WnZls1myf2exHsnjthSNCs+fad
-        JMpJCrPm0gbM2es0W/ZGj+Qo05dGLqJKii+mI1cxa7ZaPS/WEpiVk2pkZK9LAO97h30agby7zNON
-        P2mOxrsJK3TOWj5EroMMZ4haLpNcFjrt0KSirxIF0uedZX4/lNupHlgVHVfUdS7ryVwsSUsjgZvw
-        ItRv28uz/Te9Fe6dJFQatlntnup8wY49SbYYt6tNOgxGEWZpGW6sOf3+QcvXb2bofkjRk8afAdJG
-        tKQB6mJWX3V9Pu8B9sXJtv8nbEoP+V7RoU8CJc447RnvEfyAqgMlu/lK1s8kd2ukApcW3qITdCRY
-        s35gVGUR6bLGVO8PoacpMWUGAAA=
+      string: '{"product":{"id":"13","name":"Cucumber","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"cucumber.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":"2022-04-12","last_used":null,"stock_amount":"5","stock_value":"17.67","stock_amount_opened":"0","stock_amount_aggregated":"5.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"2","name":"Piece","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Pieces","plural_forms":null},"quantity_unit_stock":{"id":"2","name":"Piece","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Pieces","plural_forms":null},"last_price":"3.0025","avg_price":"3.53","oldest_price":"4.8325","current_price":"4.8325","last_shopping_location_id":"1","default_shopping_location_id":null,"next_due_date":"2022-04-20","location":{"id":"2","name":"Fridge","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","is_freezer":"0"},"average_shelf_life_days":28,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -92,18 +120,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 20:05:24 GMT
+      - Fri, 22 Apr 2022 08:40:26 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
@@ -115,26 +141,60 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock/products/15
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA81UTW/bMAz9K4POaRAnTbv6B+y8w27DQCgybauVJVWWknXF/vtIyY6bISh62GGX
-        IOaXyPce+Sp8cE1SUdSvQjeiFtVerISVA9L/b26Q0dF3g6MK2kftrKhtMmY150EXXPKQUzlTqqiP
-        nFvRh3FKck5xb8ky9s57bTu4cJWKz4niwKegejlyCU4oxjE69bRYWnrFhXMoRAdzRLXeUNagbbGA
-        HFyyNJ1gc4OtTCbCAUf+aV1AaOTLSO77d9wg24gBnEea/t1CU2QbEH/RlB+Ljr08LcFeq5ior1Yb
-        hImHmHlYP/qOukQrD+SKkoJOqLs+Qi9tY5YSb1zcQUbEugiqR/U04dImQy+YAW0EwgECKu2RkWCg
-        PBUnx6SNTF/hSEnjgs5x1XZHkSoNyciI8Dfk4FoY02GuMVduErX+4meFPCdNLSlnxzTgQlZhsdcN
-        AqkncwvuiOGo8TS1GNwJVEB6uoGoB2JUDp582822utlsb6rdp+qhvq3q3Z34vcj1IINyJGdRf/9B
-        ApUkhFlxrP45e8OzZW8akRxl+tLIWVKs92I6SpPySPv1HWe+Dcy64RoZ2QuP7LqAHY9A3n3m6cLP
-        iqPxLsIKnbOSn5O0UccXSFYvk5yXmTdo0tBXjQrp88oqfxzK26keeJOCNNR1LjuSuVhYSwOBy3gR
-        6pft5dn+m94K90ETKrwk+4f7fL+OHUm2GHfrisl0hjDjZbiw5vTr5yzfvpmh6yFFTxZ/RuCNaEgD
-        1MWsvurt8bwG2Jegm+6fsKlHyNcKA6PAmyJpz2SHMPZoWjC6nW/k9jMJ2zttIPDCewyKjoSoNytB
-        VRaRLmtM9f4AqT6ygmEGAAA=
+      string: '{"product":{"id":"15","name":"Tomato","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"tomato.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":"2022-04-12","last_used":null,"stock_amount":"5","stock_value":"16.34","stock_amount_opened":"0","stock_amount_aggregated":"5.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"2","name":"Piece","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Pieces","plural_forms":null},"quantity_unit_stock":{"id":"2","name":"Piece","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Pieces","plural_forms":null},"last_price":"3.225","avg_price":"3.27","oldest_price":"5.2875","current_price":"5.2875","last_shopping_location_id":"1","default_shopping_location_id":null,"next_due_date":"2022-04-20","location":{"id":"2","name":"Fridge","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","is_freezer":"0"},"average_shelf_life_days":28,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
+    headers:
+      Access-Control-Allow-Headers:
+      - '*'
+      Access-Control-Allow-Methods:
+      - GET, POST, PUT, DELETE, OPTIONS
+      Access-Control-Allow-Origin:
+      - '*'
+      Connection:
+      - keep-alive
+      Content-Type:
+      - application/json
+      Date:
+      - Fri, 22 Apr 2022 08:40:26 GMT
+      Server:
+      - nginx/1.20.2
+      Transfer-Encoding:
+      - chunked
+      X-Powered-By:
+      - PHP/8.0.13
+    status:
+      code: 200
+      message: OK
+- request:
+    body: null
+    headers:
+      Accept-Encoding:
+      - gzip, deflate
+      Connection:
+      - keep-alive
+      User-Agent:
+      - python-requests/2.27.1
+      accept:
+      - application/json
+    method: GET
+    uri: https://localhost/api/stock/products/20
+  response:
+    body:
+      string: '{"product":{"id":"20","name":"Minced meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":"20.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null},"product_barcodes":[],"last_purchased":"2022-04-12","last_used":null,"stock_amount":"1","stock_value":"1.74","stock_amount_opened":"0","stock_amount_aggregated":"1.0","stock_amount_opened_aggregated":"0.0","default_quantity_unit_purchase":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"quantity_unit_stock":{"id":"3","name":"Pack","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","name_plural":"Packs","plural_forms":null},"last_price":"1.735","avg_price":"1.74","oldest_price":"1.735","current_price":"1.735","last_shopping_location_id":"2","default_shopping_location_id":null,"next_due_date":"2022-04-21","location":{"id":"2","name":"Fridge","description":null,"row_created_timestamp":"2022-04-22
+        08:37:55","is_freezer":"0"},"average_shelf_life_days":9,"spoil_rate_percent":0,"is_aggregated_amount":"0","has_childs":false}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -144,18 +204,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 20:05:24 GMT
+      - Fri, 22 Apr 2022 08:40:26 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_stock/TestStock.test_get_stock_valid.yaml b/test/cassettes/test_stock/TestStock.test_get_stock_valid.yaml
index 989109c..33ddded 100644
--- a/test/cassettes/test_stock/TestStock.test_get_stock_valid.yaml
+++ b/test/cassettes/test_stock/TestStock.test_get_stock_valid.yaml
@@ -7,45 +7,48 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/stock
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA+2c3XOjNhDA/xUNzzED+CNO3jrX9l7azk2vL51Oh5FBxjoD4kBKJr25/727QrYB
-        g+Mk/szx4AevQBKSftrV7sI/3yyaCJVK695yrRvzx6dRlLOIShaCfGw7UPJAY8Xg38ge3cHfGSuk
-        P2NzkTM/hAuhxHM8d+B4A9fbVCQylupKsIqyJb+U1dtwdBu8qEj9WsdCxXz5lGE72M8sF6EKpM+x
-        g9ieEVj336y1LKUJXv9hIQIRYx9vrJAVQc4zyUVq3acqjtd3+lEuVFZWqEcikPxh1VwsAor3lMUj
-        qKhYiCzjaeTXisoavyq4zs9UHixogVUM4YZSWEgRLDeSOQ2kyNeX+lL4qytcPSIJT0vJZjSm+jHm
-        VMU4AdVZeCqgZhzokLUX+3QuWa4nYL8r5zlj/8FT7ne1XNDHzcUZD6SC1THnMfPLqSiHh6V0BiJJ
-        ofCR8Wgh/QVNw3hza6UIW9YjkQrpBwsWLM14zFUMNccJS6UPq9DPWcAzthqBDCqHguoyKRsPaCxy
-        rq9zPZyXQCUKF4ffHGpfzP1CzVZ1YM24LhoL8avi0KVApIVK2GaSytlb8JD5sGr0nPrigeUPnD2a
-        wczFox/kDCHzJU9gJmmSQRlg5Ayc6cCdEGdyPxrejyfW9+83FVDH0A3D0g5Qx7e2dwtX1tfI86RW
-        toE2Ussn6yBVL74dpOKAN0lFmSH1o0qSJzJjNC9A2LN6TlatCCdDz4X9JYtgPq6X25ZlecHcuvb0
-        1Bq2ZYCqW6eFGq/JLcpWGjbnRfZOkHV3KVCzdff69Tj6tWUZXi6nI3uCCLSrV9DgdwOnoqj3NoSh
-        ylcqV2ytCSnKDKS/RNH+iOqed1vAaHG/0QLGKsAm3mUBl4Zf0y57hsFninsT2HqTCXxViE492+02
-        gb2BMwJDG9Zh7WAKC+iYJvAE2mtSijJD6R9ChDEcT/Y1f/FWOER2HVWHUPxGULGKZ0DtOqr2qhSP
-        +/45jqpXxel4aI9Q47TrUvAoOQNPayTtqjIOJLPR19ituI+weJdTqWWAaiYv7htNTlFmOP0Ex/6X
-        cIoU7eAUn+5FnKLpUXcpGckuhdpzit6m9cq4BJdSyzK8XJP31rMn3ZwO0fnrHNr52zJANU5Rfzc5
-        RZnh9CM494oFKcC3C8L9XEqHZhWHrM6qkfSsXpX7t2UpXi6rd3f2CI3Ddp2qPcxDfKCa/jyyTkW3
-        VpNVlBlW/xaRyiX83w/TZ0zfF59Rsb46pkbSY9pjeqwozcS1tWnbiSm4kfRCP6Hpq12gTU610ID6
-        YcEYBDbPBao5kUKMdRUs7c+o1xhOvRB9igentnDqSB+X1nkPUxs57OR0OvBOzin6qbY4ReGKUxGH
-        JFCyAFFNp1q/Qd5GQngGUWsSCgiJk4JLAvkS8oZgMJtJBsF7UtAQrgkgMk9YzGV+QwoWkpDThKQi
-        VRCsZTxPREgkSzKohKcPPIRsEqIkiekMGiFMlg0wktAopYTG/Kt6ggpYTqGxdX0PIlaZVNQmP0kC
-        kXJBmCjwbhoEqsDrJfmiAHgSKvhhn5kuZ5TkbKYSm3yGTpMA+knJkhYhidSM5ZDIkt5Ab6ElSiRd
-        8oRCeUFTyE6A+wtJusfC3lHWj9NmzdibdVhNo9E8dPsmX2yg9ft+yfW1p9FcyL6Ph/C2fb+e7zaG
-        fR9X6o6N322LIWydrQ7om9QZdlsbP/bSbPyfaJbzJQVBbdsvF465sUqqHooDkopdqR+ljOQIRyl0
-        yl5qQN7KyonoM2hOmfl2N33W9eFWjL69Q/NvCSe4qLy2kEXhylZTkIkI9opezfskqfbMmlj+gZNU
-        ISO0nIke2lNCO7mzne5YfZkRe3I9i7vEFrQoNND+CeejYnE2ZHG86mrWSH4wNdsbxCfMK58ObQf1
-        1i6D+OTaFZXhFqgoNKD+JeDYL+B/bw+fNalc6nnoNethNKvnOJVjZu1dECyq+S+H3nhUStrBhVe3
-        IIB/anC9NhemFhpwf42F2t8mxn1pR5YNFr8oywYNjrqCNZIjKFjtFbniF7dwJusvbo3NEjx8ng16
-        E17y4taFeJyw220eJ69GqguWcLeC7eYUJ6AWza97nN704paHXW8qWC00nH5WET0fpzhcdU6NpOf0
-        jKF7VCbvllJvao8RinZtep7zqn6hdYtSRMFQ+juPl/BvPyP40OEbnUFQp3Ql6jE9I6aoN94TpvA4
-        q6D9cGRrT287pK//WgE08cqXtDzcFLcQRWEFUfLOPlmwy7Q1KYeXGsE5q2tJf9niGl/Xum18saDT
-        8K2yOrWP8drzG1BtcyrpZD2D6s80X/aomk/APMG3W37gr4tcNar//g94nlc0B0gAAA==
+      string: '[{"amount":"1","amount_aggregated":"5.0","value":"5.25","best_before_date":"2022-10-19","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"1","due_type":"1","product_id":"2","product":{"id":"2","name":"Chocolate","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"8","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"1","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"22.92","best_before_date":"2022-10-19","amount_opened":"1","amount_opened_aggregated":"1.0","is_aggregated_amount":"0","due_type":"1","product_id":"3","product":{"id":"3","name":"Gummy
+        bears","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"8","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"gummybears.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"25","amount_aggregated":"25.0","value":"3019.09","best_before_date":"2019-05-04","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"4","product":{"id":"4","name":"Crisps","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"10","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.14","best_before_date":"2022-05-12","amount_opened":"0","amount_opened_aggregated":"0","is_aggregated_amount":"0","due_type":"1","product_id":"5","product":{"id":"5","name":"Eggs","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"2","qu_factor_purchase_to_stock":"10.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"18.91","best_before_date":"2023-12-13","amount_opened":"1","amount_opened_aggregated":"1.0","is_aggregated_amount":"0","due_type":"1","product_id":"6","product":{"id":"6","name":"Noodles","description":null,"product_group_id":"6","active":"1","location_id":"3","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.5","best_before_date":"2024-06-30","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"7","product":{"id":"7","name":"Pickles","description":null,"product_group_id":"3","active":"1","location_id":"5","shopping_location_id":null,"qu_id_purchase":"4","qu_id_stock":"4","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.6","best_before_date":"2024-10-08","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"8","product":{"id":"8","name":"Gulash
+        soup","description":null,"product_group_id":"3","active":"1","location_id":"5","shopping_location_id":null,"qu_id_purchase":"5","qu_id_stock":"5","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.09","best_before_date":"2022-05-06","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"9","product":{"id":"9","name":"Yogurt","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"6","qu_id_stock":"6","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.11","best_before_date":"2022-05-13","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"10","product":{"id":"10","name":"Cheese","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"4","amount_aggregated":"4.0","value":"15.26","best_before_date":"2022-05-02","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"11","product":{"id":"11","name":"Cold
+        cuts","description":"Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+        sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
+        erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
+        rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum
+        dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
+        diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+        sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+        Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
+        amet.","product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.64","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"12","product":{"id":"12","name":"Paprika","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"paprika.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"17.67","best_before_date":"2022-04-20","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"13","product":{"id":"13","name":"Cucumber","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"cucumber.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.31","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"14","product":{"id":"14","name":"Radish","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"7","qu_id_stock":"7","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"5","amount_aggregated":"5.0","value":"16.34","best_before_date":"2022-04-20","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"15","product":{"id":"15","name":"Tomato","description":null,"product_group_id":"5","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"2","qu_id_stock":"2","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"7","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":"tomato.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:57","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"1","amount_aggregated":"1.0","value":"1.74","best_before_date":"2022-04-21","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"2","product_id":"20","product":{"id":"20","name":"Minced
+        meat","description":null,"product_group_id":"4","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"180","default_best_before_days_after_thawing":"2","picture_file_name":"20.jpg","enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"2","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2000","amount_aggregated":"2000.0","value":"0.0","best_before_date":"2022-11-08","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"21","product":{"id":"21","name":"Flour","description":null,"product_group_id":"3","active":"1","location_id":"3","shopping_location_id":null,"qu_id_purchase":"8","qu_id_stock":"8","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"1","tare_weight":"500.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"2","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2","amount_aggregated":"2.0","value":"9.43","best_before_date":"2022-11-08","amount_opened":"1","amount_opened_aggregated":"1.0","is_aggregated_amount":"0","due_type":"1","product_id":"22","product":{"id":"22","name":"Sugar","description":null,"product_group_id":"3","active":"1","location_id":"3","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"3870","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2","amount_aggregated":"2.0","value":"9.86","best_before_date":"2022-04-24","amount_opened":"0","amount_opened_aggregated":"0.0","is_aggregated_amount":"0","due_type":"1","product_id":"23","product":{"id":"23","name":"Milk","description":null,"product_group_id":"6","active":"1","location_id":"2","shopping_location_id":null,"qu_id_purchase":"10","qu_id_stock":"10","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":null,"calories":"418","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2","amount_aggregated":"2","value":"1.58","best_before_date":"2022-10-19","amount_opened":"0","amount_opened_aggregated":"0","is_aggregated_amount":"0","due_type":"1","product_id":"24","product":{"id":"24","name":"Milk
+        Chocolate","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":"2","calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}},{"amount":"2","amount_aggregated":"2","value":"9.43","best_before_date":"2022-10-19","amount_opened":"0","amount_opened_aggregated":"0","is_aggregated_amount":"0","due_type":"1","product_id":"25","product":{"id":"25","name":"Dark
+        Chocolate","description":null,"product_group_id":"1","active":"1","location_id":"4","shopping_location_id":null,"qu_id_purchase":"3","qu_id_stock":"3","qu_factor_purchase_to_stock":"1.0","min_stock_amount":"0","default_best_before_days":"0","default_best_before_days_after_open":"0","default_best_before_days_after_freezing":"0","default_best_before_days_after_thawing":"0","picture_file_name":null,"enable_tare_weight_handling":"0","tare_weight":"0.0","not_check_stock_fulfillment_for_recipes":"0","parent_product_id":"2","calories":"123","cumulate_min_stock_amount_of_sub_products":"0","due_type":"1","quick_consume_amount":"1.0","hide_on_stock_overview":"0","default_stock_label_type":"0","should_not_be_frozen":"0","row_created_timestamp":"2022-04-22
+        08:37:58","treat_opened_as_out_of_stock":"1","no_own_stock":"0","default_consume_location_id":null}}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -55,18 +58,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 19:23:42 GMT
+      - Fri, 22 Apr 2022 08:40:25 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_system/TestSystem.test_get_last_db_changed_valid.yaml b/test/cassettes/test_system/TestSystem.test_get_last_db_changed_valid.yaml
index cf5a15c..974a670 100644
--- a/test/cassettes/test_system/TestSystem.test_get_last_db_changed_valid.yaml
+++ b/test/cassettes/test_system/TestSystem.test_get_last_db_changed_valid.yaml
@@ -7,16 +7,14 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/system/db-changed-time
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA6tWSs5IzEtPTYkvycxNVbJSMjIwMtQ1MNI1NFYwMrAyMLEyMVeqBQCc7rV6JgAA
-        AA==
+      string: '{"changed_time":"2022-04-22 09:40:24"}'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -26,18 +24,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 13 Feb 2021 20:15:46 GMT
+      - Fri, 22 Apr 2022 08:40:26 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_tasks/TestTasks.test_complete_task_invalid.yaml b/test/cassettes/test_tasks/TestTasks.test_complete_task_invalid.yaml
index 1a18f10..0d7c4fa 100644
--- a/test/cassettes/test_tasks/TestTasks.test_complete_task_invalid.yaml
+++ b/test/cassettes/test_tasks/TestTasks.test_complete_task_invalid.yaml
@@ -1,6 +1,6 @@
 interactions:
 - request:
-    body: '{"done_time": "2021-08-23T09:10:00.314599+00:00"}'
+    body: '{"done_time": "2022-04-22T08:40:12.632513+00:00"}'
     headers:
       Accept-Encoding:
       - gzip, deflate
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -31,13 +31,13 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Mon, 23 Aug 2021 09:10:01 GMT
+      - Fri, 22 Apr 2022 08:40:27 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 400
       message: Bad Request
diff --git a/test/cassettes/test_tasks/TestTasks.test_complete_task_valid.yaml b/test/cassettes/test_tasks/TestTasks.test_complete_task_valid.yaml
index 5a3a791..41376ef 100644
--- a/test/cassettes/test_tasks/TestTasks.test_complete_task_valid.yaml
+++ b/test/cassettes/test_tasks/TestTasks.test_complete_task_valid.yaml
@@ -1,6 +1,6 @@
 interactions:
 - request:
-    body: '{"done_time": "2021-08-23T09:06:38.501659+00:00"}'
+    body: '{"done_time": "2022-04-22T08:40:26.983637+00:00"}'
     headers:
       Accept-Encoding:
       - gzip, deflate
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -31,11 +31,11 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Mon, 23 Aug 2021 09:06:38 GMT
+      - Fri, 22 Apr 2022 08:40:27 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 204
       message: No Content
diff --git a/test/cassettes/test_tasks/TestTasks.test_complete_task_valid_with_defaults.yaml b/test/cassettes/test_tasks/TestTasks.test_complete_task_valid_with_defaults.yaml
index c2a585c..6e75d23 100644
--- a/test/cassettes/test_tasks/TestTasks.test_complete_task_valid_with_defaults.yaml
+++ b/test/cassettes/test_tasks/TestTasks.test_complete_task_valid_with_defaults.yaml
@@ -1,6 +1,6 @@
 interactions:
 - request:
-    body: '{"done_time": "2021-08-23T09:07:57.290165+00:00"}'
+    body: '{"done_time": "2022-04-22T08:40:12.632513+00:00"}'
     headers:
       Accept-Encoding:
       - gzip, deflate
@@ -11,7 +11,7 @@ interactions:
       Content-Type:
       - application/json
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: POST
@@ -31,11 +31,11 @@ interactions:
       Content-Type:
       - application/json
       Date:
-      - Mon, 23 Aug 2021 09:07:58 GMT
+      - Fri, 22 Apr 2022 08:40:26 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 204
       message: No Content
diff --git a/test/cassettes/test_tasks/TestTasks.test_get_tasks_valid.yaml b/test/cassettes/test_tasks/TestTasks.test_get_tasks_valid.yaml
index 8b44e36..b2f20c9 100644
--- a/test/cassettes/test_tasks/TestTasks.test_get_tasks_valid.yaml
+++ b/test/cassettes/test_tasks/TestTasks.test_get_tasks_valid.yaml
@@ -7,22 +7,24 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.26.0
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/tasks
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA+2WX2uDMBDAv0rIc4Wqbcd8HmWDPYyxPY0hQU+bVY0kcUWG332X+ZfqoI7uqX3T
-        S+4ud7/cXd6+KA+pZy9oxlKgHn2GnHFJ9A5IzCSLgYRCSLqgIahA8lxzkVEvK5IERQX4IdNGzVk6
-        trV0LOfGbBUZypb1h695CkqzNG/VAlSJhSz9xjNTiscZhL4WfqFAtnIpDn4gAXfjUm+k82W7xL71
-        VrbnbtDpsRXqdaEZo014d5AK8or/qBFxqbRfL9QBJexIcPoRViZurvKElY1JOvSV80AXEvyIJzBw
-        WS1om43BeZuz3gskglbHiT/9WBtaVYs6EU7HeCvknrAsJDzNpfhE0lIE5bSrEWPXstdm6wzG7pjO
-        ZTPGhDSMn6T4gECr6eT/iXNv/IWpvT1teYTVsWxnJla8UMdFd9lY+wp75NE5S3fV3ReD9IfTuClc
-        kfYD4Wzd+N+QrjukW46dmBElksIMVxIJSQ47pokWOHvxEzLyYKQxoAznshnIZA/lL01j6h6YATmn
-        Y9fj8Frd5plSP1vaKbrpuJlSdE/vrnMfRlcEw7eRyUb1/g1XhIa7rgoAAA==
+      string: '[{"id":"1","name":"Task1","description":null,"due_date":null,"done":"0","done_timestamp":null,"category_id":null,"assigned_to_user_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","assigned_to_user":null,"category":null},{"id":"2","name":"Task2","description":null,"due_date":"2022-04-21","done":"0","done_timestamp":null,"category_id":"1","assigned_to_user_id":"1","row_created_timestamp":"2022-04-22
+        08:37:58","assigned_to_user":{"id":"1","username":"Demo User","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:55","display_name":"Demo User","picture_file_name":null},"category":{"id":"1","name":"Category1","description":null,"row_created_timestamp":"2022-04-22
+        08:37:58"}},{"id":"3","name":"Task3","description":null,"due_date":"2022-04-22","done":"0","done_timestamp":null,"category_id":"1","assigned_to_user_id":"1","row_created_timestamp":"2022-04-22
+        08:37:58","assigned_to_user":{"id":"1","username":"Demo User","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:55","display_name":"Demo User","picture_file_name":null},"category":{"id":"1","name":"Category1","description":null,"row_created_timestamp":"2022-04-22
+        08:37:58"}},{"id":"4","name":"Task4","description":null,"due_date":"2022-04-26","done":"0","done_timestamp":null,"category_id":null,"assigned_to_user_id":"1","row_created_timestamp":"2022-04-22
+        08:37:58","assigned_to_user":{"id":"1","username":"Demo User","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:55","display_name":"Demo User","picture_file_name":null},"category":null},{"id":"5","name":"Task5","description":null,"due_date":"2022-05-12","done":"0","done_timestamp":null,"category_id":null,"assigned_to_user_id":null,"row_created_timestamp":"2022-04-22
+        08:37:58","assigned_to_user":null,"category":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -32,18 +34,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Sat, 21 Aug 2021 19:42:54 GMT
+      - Fri, 22 Apr 2022 08:40:26 GMT
       Server:
-      - nginx/1.20.1
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/8.0.9
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_users/TestUsers.test_get_user_by_id_valid.yaml b/test/cassettes/test_users/TestUsers.test_get_user_by_id_valid.yaml
index cae2453..9a8ce78 100644
--- a/test/cassettes/test_users/TestUsers.test_get_user_by_id_valid.yaml
+++ b/test/cassettes/test_users/TestUsers.test_get_user_by_id_valid.yaml
@@ -7,18 +7,21 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/users
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA72RywrCMBBFfyVknUKT1oVd+wuuREJopzCQtCEPioj/bqJdqFi7kS7nXrjnwJyu
-        FDvaUE4ZjR7coAyk8wBmJMd0p7hH54N8FkPUmlGtPgI3TrJ1oAJ0MqABH5SxaUaUghelKHhF+L6p
-        eVPVabBDb7W6zJNvLIttiA5kjxpekDc2a4oFTZKLv4rufog+aGuq1ZJqLrZTzbQ11fyUb88nudhO
-        NdOWVM932fjmdqkCAAA=
+      string: '[{"id":"1","username":"Demo User","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:55","display_name":"Demo User","picture_file_name":null},{"id":"2","username":"Demo
+        User 2","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 2","picture_file_name":null},{"id":"3","username":"Demo
+        User 3","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 3","picture_file_name":null},{"id":"4","username":"Demo
+        User 4","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 4","picture_file_name":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -28,18 +31,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Wed, 28 Jul 2021 13:11:50 GMT
+      - Fri, 22 Apr 2022 08:40:27 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/cassettes/test_users/TestUsers.test_get_users_valid.yaml b/test/cassettes/test_users/TestUsers.test_get_users_valid.yaml
index d005af2..9a8ce78 100644
--- a/test/cassettes/test_users/TestUsers.test_get_users_valid.yaml
+++ b/test/cassettes/test_users/TestUsers.test_get_users_valid.yaml
@@ -7,18 +7,21 @@ interactions:
       Connection:
       - keep-alive
       User-Agent:
-      - python-requests/2.25.1
+      - python-requests/2.27.1
       accept:
       - application/json
     method: GET
     uri: https://localhost/api/users
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAEA72RywrCMBBFfyVknUKT1oVd+wuuREJopzCQtCEPioj/bqJdqFi7kS7nXrjnwJyu
-        FDvaUE4ZjR7coAyk8wBmJMd0p7hH54N8FkPUmlGtPgI3TrJ1oAJ0MqABH5SxaUaUghelKHhF+L6p
-        eVPVabBDb7W6zJNvLIttiA5kjxpekDc2a4oFTZKLv4rufog+aGuq1ZJqLrZTzbQ11fyUb88nudhO
-        NdOWVM932fjmdqkCAAA=
+      string: '[{"id":"1","username":"Demo User","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:55","display_name":"Demo User","picture_file_name":null},{"id":"2","username":"Demo
+        User 2","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 2","picture_file_name":null},{"id":"3","username":"Demo
+        User 3","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 3","picture_file_name":null},{"id":"4","username":"Demo
+        User 4","first_name":null,"last_name":null,"row_created_timestamp":"2022-04-22
+        08:37:57","display_name":"Demo User 4","picture_file_name":null}]'
     headers:
       Access-Control-Allow-Headers:
       - '*'
@@ -28,18 +31,16 @@ interactions:
       - '*'
       Connection:
       - keep-alive
-      Content-Encoding:
-      - gzip
       Content-Type:
       - application/json
       Date:
-      - Fri, 28 May 2021 08:58:31 GMT
+      - Fri, 22 Apr 2022 08:40:27 GMT
       Server:
-      - nginx/1.18.0
+      - nginx/1.20.2
       Transfer-Encoding:
       - chunked
       X-Powered-By:
-      - PHP/7.4.14
+      - PHP/8.0.13
     status:
       code: 200
       message: OK
diff --git a/test/test_battery.py b/test/test_battery.py
index 0b9c2d9..c4fd365 100644
--- a/test/test_battery.py
+++ b/test/test_battery.py
@@ -8,7 +8,7 @@ class TestBattery:
     def test_get_batteries_valid(self, grocy):
         batteries = grocy.batteries()
 
-        assert len(batteries) == 5
+        assert len(batteries) == 4
         assert isinstance(batteries[0].last_tracked_time, datetime)
 
     @pytest.mark.vcr
@@ -16,15 +16,15 @@ def test_get_battery_details_valid(self, grocy):
         battery = grocy.battery(1)
 
         assert battery.id == 1
-        assert battery.name == "Le new battery"
+        assert battery.name == "Battery1"
         assert battery.description == "Warranty ends 2023"
         assert battery.used_in == "TV remote control"
-        assert battery.charge_interval_days == 0
+        assert battery.charge_interval_days == 180
         assert isinstance(battery.created_timestamp, datetime)
         assert isinstance(battery.last_charged, datetime)
         assert isinstance(battery.next_estimated_charge_time, datetime)
         assert battery.userfields is None
-        assert battery.charge_cycles_count == 6
+        assert battery.charge_cycles_count == 4
 
     @pytest.mark.vcr
     def test_charge_battery(self, grocy):
diff --git a/test/test_chores.py b/test/test_chores.py
index 0a19823..030fda7 100644
--- a/test/test_chores.py
+++ b/test/test_chores.py
@@ -23,25 +23,25 @@ def test_get_chores_valid(self, grocy):
             assert isinstance(chore.last_done_by, User)
 
         chore = next(chore for chore in chores if chore.id == 6)
-        assert chore.name == "The thing which happens on Mondays and Wednesdays"
-        assert chore.period_config == "monday,wednesday"
+        assert chore.name == "Change the bed sheets"
+        assert chore.period_config == "monday"
 
     @pytest.mark.vcr
     def test_get_chore_details(self, grocy):
         chore_details = grocy.chore(3)
         assert isinstance(chore_details, Chore)
 
-        assert chore_details.name == "Lawn mowed in the garden"
+        assert chore_details.name == "Take out the trash"
         assert chore_details.assignment_type == AssignmentType.RANDOM
         assert chore_details.last_done_by.id == 1
-        assert chore_details.period_type == PeriodType.DYNAMIC_REGULAR
-        assert chore_details.period_days == 21
+        assert chore_details.period_type == PeriodType.HOURLY
+        assert chore_details.period_days is None
         assert chore_details.period_config is None
-        assert chore_details.track_date_only is False
+        assert chore_details.track_date_only is True
         assert chore_details.rollover is False
         assert chore_details.assignment_config == "1,2,3,4"
-        assert chore_details.next_execution_assigned_user.id == 2
-        assert chore_details.next_execution_assigned_to_user_id == 2
+        assert chore_details.next_execution_assigned_user.id == 1
+        assert chore_details.next_execution_assigned_to_user_id == 1
         assert chore_details.userfields is None
 
     @pytest.mark.vcr
diff --git a/test/test_meal_plan.py b/test/test_meal_plan.py
index 0a809cf..b294447 100644
--- a/test/test_meal_plan.py
+++ b/test/test_meal_plan.py
@@ -8,9 +8,9 @@ class TestMealPlan:
     def test_get_meal_plan_valid(self, grocy):
         meal_plan = grocy.meal_plan(get_details=False)
 
-        assert len(meal_plan) == 8
+        assert len(meal_plan) == 12
         item = next(item for item in meal_plan if item.id == 1)
-        assert item.day.day == 8
+        assert item.day.day == 18
         assert item.recipe_id == 1
         assert item.recipe_servings == 1
         assert item.note is None
@@ -20,9 +20,9 @@ def test_get_meal_plan_valid(self, grocy):
     def test_get_meal_plan_with_details_valid(self, grocy):
         meal_plan = grocy.meal_plan(get_details=True)
 
-        assert len(meal_plan) == 9
+        assert len(meal_plan) == 12
         item = next(item for item in meal_plan if item.id == 1)
-        assert item.day.day == 8
+        assert item.day.day == 18
         assert item.recipe_id == 1
         assert item.recipe_servings == 1
         assert item.note is None
@@ -55,4 +55,4 @@ def test_get_meal_plan_with_product(self, grocy):
         product_entry = next(
             item for item in meal_plan if item.type == MealPlanItemType.PRODUCT
         )
-        assert product_entry.product_id == 4
+        assert product_entry.product_id == 3
diff --git a/test/test_meal_plan_sections.py b/test/test_meal_plan_sections.py
index 7d12268..29e763b 100644
--- a/test/test_meal_plan_sections.py
+++ b/test/test_meal_plan_sections.py
@@ -8,11 +8,11 @@ class TestMealPlanSections:
     def test_get_sections_valid(self, grocy):
         sections = grocy.meal_plan_sections()
 
-        assert len(sections) == 2
+        assert len(sections) == 4
         section = sections[1]
         assert section.id == 1
         assert section.name == "Breakfast"
-        assert section.sort_number == 3
+        assert section.sort_number == 10
         assert isinstance(section.row_created_timestamp, datetime.datetime)
 
     @pytest.mark.vcr
diff --git a/test/test_product.py b/test/test_product.py
index cbe89d2..86e5446 100644
--- a/test/test_product.py
+++ b/test/test_product.py
@@ -17,22 +17,22 @@ def test_get_all_products(self, grocy):
 
     @pytest.mark.vcr
     def test_product_get_details_valid(self, grocy):
-        product = grocy.product(10)
+        product = grocy.product(8)
 
         assert isinstance(product, Product)
-        assert product.name == "Cheese"
+        assert product.name == "Gulash soup"
         assert product.available_amount == 5
-        assert product.product_group_id == 6
+        assert product.product_group_id == 3
         assert product.qu_factor_purchase_to_stock == 1.0
-        assert product.default_quantity_unit_purchase.id == 3
-        assert product.default_quantity_unit_purchase.name == "Pack"
+        assert product.default_quantity_unit_purchase.id == 5
+        assert product.default_quantity_unit_purchase.name == "Tin"
         assert product.default_quantity_unit_purchase.description == None
-        assert product.default_quantity_unit_purchase.name_plural == "Packs"
+        assert product.default_quantity_unit_purchase.name_plural == "Tins"
 
-        assert len(product.product_barcodes) == 1
+        assert len(product.product_barcodes) == 2
         barcode = product.product_barcodes[0]
         assert isinstance(barcode, ProductBarcode)
-        assert barcode.barcode == "12345"
+        assert barcode.barcode == "22111968"
 
     @pytest.mark.vcr
     def test_product_no_barcodes(self, grocy):
@@ -68,7 +68,7 @@ def test_get_product_by_barcode(self, grocy):
 
         assert isinstance(product, Product)
         assert product.name == "Crisps"
-        assert product.available_amount == 5
+        assert product.available_amount == 25
         assert product.product_group_id == 1
 
         assert len(product.product_barcodes) == 1
diff --git a/test/test_stock.py b/test/test_stock.py
index 23ae1b8..4fe1ced 100644
--- a/test/test_stock.py
+++ b/test/test_stock.py
@@ -9,7 +9,7 @@ def test_get_stock_valid(self, grocy):
         stock = grocy.stock()
 
         assert isinstance(stock, list)
-        assert len(stock) == 19
+        assert len(stock) == 20
         for prod in stock:
             assert isinstance(prod, Product)
 
@@ -36,7 +36,7 @@ def test_get_missing_products_valid(self, grocy):
         missing_products = grocy.missing_products(True)
 
         assert isinstance(missing_products, list)
-        assert len(missing_products) == 4
+        assert len(missing_products) == 3
         for prod in missing_products:
             assert isinstance(prod, Product)
             assert isinstance(prod.amount_missing, float)
@@ -51,6 +51,6 @@ def test_get_overdue_products_valid(self, grocy):
         overdue_products = grocy.overdue_products(True)
 
         assert isinstance(overdue_products, list)
-        assert len(overdue_products) == 2
+        assert len(overdue_products) == 4
         for prod in overdue_products:
             assert isinstance(prod, Product)
diff --git a/test/test_system.py b/test/test_system.py
index 16b415d..6102f5c 100644
--- a/test/test_system.py
+++ b/test/test_system.py
@@ -9,6 +9,6 @@ def test_get_last_db_changed_valid(self, grocy):
         timestamp = grocy.get_last_db_changed()
 
         assert isinstance(timestamp, datetime)
-        assert timestamp.year == 2021
-        assert timestamp.month == 2
-        assert timestamp.day == 13
+        assert timestamp.year == 2022
+        assert timestamp.month == 4
+        assert timestamp.day == 22
diff --git a/test/test_tasks.py b/test/test_tasks.py
index 0ef0185..0fb045b 100644
--- a/test/test_tasks.py
+++ b/test/test_tasks.py
@@ -12,14 +12,14 @@ class TestTasks:
     def test_get_tasks_valid(self, grocy):
         tasks = grocy.tasks()
 
-        assert len(tasks) == 6
-        task = tasks[0]
-        assert task.id == 1
-        assert task.name == "Repair the garage door"
+        assert len(tasks) == 5
+        task = tasks[1]
+        assert task.id == 2
+        assert task.name == "Task2"
         assert isinstance(task.assigned_to_user, User)
         assert isinstance(task.category, TaskCategory)
         assert task.category.id == 1
-        assert task.category.name == "Home"
+        assert task.category.name == "Category1"
 
     @pytest.mark.vcr
     def test_complete_task_valid_with_defaults(self, grocy):