Skip to content

Commit

Permalink
enforce some types and reminder architecture
Browse files Browse the repository at this point in the history
  • Loading branch information
NyaomiDEV committed Jan 25, 2025
1 parent a9adaa1 commit 7a6c939
Showing 1 changed file with 20 additions and 12 deletions.
32 changes: 20 additions & 12 deletions src/lib/db/entities.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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 {
Expand Down

0 comments on commit 7a6c939

Please sign in to comment.