From 7a6c939a3d2d3c3d69ac67fed4c803c0e999406e Mon Sep 17 00:00:00 2001 From: Naomi Calabretta Date: Sat, 25 Jan 2025 18:49:07 +0100 Subject: [PATCH] enforce some types and reminder architecture --- src/lib/db/entities.d.ts | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/lib/db/entities.d.ts b/src/lib/db/entities.d.ts index 2ebca13..20b8181 100644 --- a/src/lib/db/entities.d.ts +++ b/src/lib/db/entities.d.ts @@ -90,14 +90,29 @@ interface EventReminder extends ReminderBase { scheduleTimeAt?: never } -interface PeriodicReminder extends ReminderBase { +interface PeriodicReminderBase extends ReminderBase { type: "periodic", - scheduleEveryInterval?: { + scheduleTimeInterval?: { + hour?: number, + minute?: number, + second?: number + } + + // make it either-or in regards to EventReminder + triggeringEvent?: never, + delay?: never +} + +interface PeriodicReminderDate extends ReminderBase { + scheduleEveryDateInterval?: { year?: number, month?: number, day?: number, }, - scheduleEveryWeekday?: { + scheduleEveryWeekdayInterval?: never +} +interface PeriodicReminderWeekday extends ReminderBase { + scheduleEveryWeekdayInterval?: { monday?: boolean, tuesday?: boolean, wednesday?: boolean, @@ -106,17 +121,10 @@ interface PeriodicReminder extends ReminderBase { saturday?: boolean, sunday?: boolean }, - scheduleTimeAt?: { - hour?: number, - minute?: number, - second?: number - } - - // make it either-or in regards to EventReminder - triggeringEvent?: never, - delay?: never + scheduleEveryDateInterval?: never } +export type PeriodicReminder = PeriodicReminderDate | PeriodicReminderWeekday; export type Reminder = EventReminder | PeriodicReminder; export interface System extends UUIDable {