For the new cluster delivery flow, we are going to build on top of the existing intake system, and add new tables to assist with coordination. Clusters will enable our operation to better manage multi-ticket deliveries involving multiple members. Additionally, shift sign up will help reduce scheduling overhead, and clarify volunteer roles.
Suggested Schema (likely missing some stuff):
Cluster:
- Status: New, Pending, Assigned, Completed
- Tickets: List[<link>]
- Size: Small (2 tickets), medium (3-4 tickets), large (5+ tickets)
- Shopper 1: <link>
- Shopper 2: <link>
- Driver 1: <link>
- Driver 2: <link>
- Shopper 1 Tickets: List[<link>]
- Shopper 2 Tickets: List[<link>]
- Driver 1 Tickets: List[<link>]
- Driver 2 Tickets: List[<link>]
- Shift: <link>
- Total number of neighbors [derived]
TODO maybe cluster size should be based on total number of neighbors not number of tickets
Shift:
- Status: Sign Up Open, Sign Up Closed
- Start Time
- End Time
- Date
- Name [derived form the date and start time]
- Shopper Capacity
- Driver Capacity
- Shopper Sign Ups (One-Time)
- Driver Sign Ups (One-Time)
- Shopper Sign Ups (Recurring) [likely a V2 feature]
- Shopper Sign Ups (Recurring) [likely a V2 feature]
- Has enough shoppers? [derived]
- Has enough drivers? [derived]
Shift Sign Up:
- Status: Pending, Assigned
- Email
- Role: shopper, driver [single select]
- Shopper shift: <link> [in form show only when role is shopper]
- Driver shift: <link> [in form show only when role is driver]
- Cluster [assigned by the coordinator]
NOTE that we will likely need to use separate, filtered shift views when linking from other tables. For example, we may need an Open Shopper Shifts for Sign Up view for members to pick from in the shopper shift.
Components:
[ ] Set up table schemas
[ ] Create shift views used when linking between tables
For the new cluster delivery flow, we are going to build on top of the existing intake system, and add new tables to assist with coordination. Clusters will enable our operation to better manage multi-ticket deliveries involving multiple members. Additionally, shift sign up will help reduce scheduling overhead, and clarify volunteer roles.
Suggested Schema (likely missing some stuff):
NOTE that we will likely need to use separate, filtered shift views when linking from other tables. For example, we may need an
Open Shopper Shifts for Sign Up
view for members to pick from in the shopper shift.Components: