A shift represents when someone is scheduled to work.
- id (int) - A unique identifier
- role_id (int) - Maps the relationship between a shift and its role
- user_id (int) - The user who the shift is assigned to
- start (Iso8601 datetime) - Determines when the shift starts, in UTC
- stop (Iso8601 datetime) - Determines when the shift ends, in UTC
- published (boolean) - Determines whether workers can see the shift in My Schedules
- description (string) - A string that allows additional custom information to be included with the shift
- The start and end times are stored in UTC in the Staffjoy database, and all queries to search the database need datetime values to be in UTC as well.
- Shifts are allowed to be up to 23 hours long.
- Unassigned shifts have a user_id of 0.
- A user is not allowed to be assigned to a shift if it overlaps with another shift he is assigned to
- Shifts are specific to roles, and only workers in that role can be assigned to them