0e0a78c47e
* Identify owner for a timeslot and check busyness against his schedule only * Fix TS errors * Fix flatmap * Fix xisting unit tests * Prevent duplicate slots by merging, userId -> userIds (multi) * Small fix to potential undefined * Moved duplicate prevention to buildSlots function * Apply date override on a per user basis * Prevent -1 being added to computedLocalAvailability * Removed console.log * Apply override properly on COLLECTIVE * Default timeZone to UTC when undefined * isSame doesn't work when the day shifts, isBetween instead * Iterate over all slot.userIds schedules to identify the first user schedule that matches * add round-robin test Co-authored-by: Alex van Andel <me@alexvanandel.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com>
21 lines
527 B
TypeScript
21 lines
527 B
TypeScript
export type TimeRange = {
|
|
userId?: number | null;
|
|
start: Date;
|
|
end: Date;
|
|
};
|
|
|
|
export type Schedule = TimeRange[][];
|
|
|
|
/**
|
|
* ```text
|
|
* Ensure startTime and endTime in minutes since midnight; serialized to UTC by using the organizer timeZone, either by using the schedule timeZone or the user timeZone.
|
|
* @see lib/availability.ts getWorkingHours(timeZone: string, availability: Availability[])
|
|
* ```
|
|
*/
|
|
export type WorkingHours = {
|
|
days: number[];
|
|
startTime: number;
|
|
endTime: number;
|
|
userId?: number | null;
|
|
};
|