* add Travel Schedule modal * UI to list schedules * set shouldDirty * add backend to add new travelSchedule * implement deleting a schedule * check if schedule is overlapping * WIP * fix finding overlapping travel schedule * only use travelSchedule when default availability is used * adjust date overrides to timezone schedule * first version of changeTimeZone cron job * fix tests by adding travelSchedules * fixes for cron job api call * improve unit tests * add migration * fix type error * fix collective-scheduling test * clean up cron job * code clean up * code clean up * show timezone from travel schedule for date override * add date override tests * show tz on date override only in default schedule * fix deleting old schedules * minor fixes in cron api handler * code clean up * code clean up from feedback * fix asia/kalkota comment * fix dark mode * fix start and end date conversion to utc * add first unit test for travel schedules * Fix modal render issue * show timezone city wtihout _ * fix dark more for datepicker * reset values after closing dialog * remove session from middleware * exit loop early once schedule is found * fix type error * add getTravelSchedules handler * clean up DatePicker * fix type error * code clean up * code clean up * add indexes * use deleteMany * fix icons --------- Co-authored-by: CarinaWolli <wollencarina@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
30 lines
688 B
TypeScript
30 lines
688 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;
|
|
};
|
|
|
|
export type TravelSchedule = {
|
|
id: number;
|
|
timeZone: string;
|
|
userId: number;
|
|
startDate: Date;
|
|
endDate: Date | null;
|
|
prevTimeZone: string | null;
|
|
};
|