[Spike] Delivery requests: support request preferences of user

Description

According to , User data has to be extended to include Request Preferences data:

Following fields has to be supported:

"holdShelf" – boolean, is always "true";
"delivery" – boolean, "false" by default;
"defaultServicePointId" – UUID of service point or empty (if not set);
"defaultDeliveryAddressTypeId" – UUID of user's address type selected as default in case of Delivery, can be empty;
"fulfillment" – user's fulfillment type, one of two options: "Delivery", "Hold shelf". Default: "Hold shelf"

Since the above data belong to request processing logic, it's proposed to store it next to other request related stuff in mod-circulation/mod-circulation-storage.
The goal of the spike is to define the necessary steps to introduce Request Preferences per User in mod-circulation. The outcomes include but not limited to the following:

  • how and where to store the data

  • what API has to be provided to make the data available to UI module(s)

  • what are the base components to implement

  • POC (optional)

Environment

None

Potential Workaround

None

Attachments

1

Checklist

hide

TestRail: Results

Activity

Show:

Marc Johnson September 2, 2019 at 1:09 PM

My understanding was that requests are common thing but right now a patron can only take an item from shelf ("hold shelf" type of requests).

They likely are quite common.

I didn't know that requests could be excluded from system. Since you're saying that they could, I agree it's better to keep request preferences away from User record and store them somewhere next to requests.

In the UI this could be done by excluding UI requests which would mean there was no UI for creating or managing requests (it is harder to do in the backend, because it is part of circulation at the moment).

So what would you suggest as a storage for user request preferences?

I'm not necessarily suggesting anything. I haven't been involved in the work, so I don't necessarily understand the context. I wanted to understand what design process had happened to come to the decision.

Dima Tkachenko September 2, 2019 at 12:58 PM
Edited

My understanding was that requests are common thing but right now a patron can only take an item from shelf ("hold shelf" type of requests).

I didn't know that requests could be excluded from system. Since you're saying that they could, I agree it's better to keep request preferences away from User record and store them somewhere next to requests.

So what would you suggest as a storage for user request preferences?

Marc Johnson September 2, 2019 at 12:18 PM

You suggest to store it in mod-circulation?

I'm not making any suggestions at this point. I'm asking for an understanding of how the decision has been made?

Dima Tkachenko September 2, 2019 at 12:10 PM


You suggest to store it in mod-circulation?

Done

Details

Assignee

Reporter

Priority

Story Points

Sprint

Development Team

Spitfire

Fix versions

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs

Created September 2, 2019 at 11:28 AM
Updated September 20, 2019 at 2:07 PM
Resolved September 20, 2019 at 7:57 AM
TestRail: Cases
TestRail: Runs