-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtypes.ts
More file actions
88 lines (83 loc) · 1.74 KB
/
Copy pathtypes.ts
File metadata and controls
88 lines (83 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
export type HolidayMatchMode = "holiday" | "nonHoliday"
export type AlarmRepeatRule =
| {
kind: "once"
timestamp: number
}
| {
kind: "daily"
hour: number
minute: number
occurrenceLimit?: number | null
}
| {
kind: "weekly"
hour: number
minute: number
weekdays: number[]
occurrenceLimit?: number | null
}
| {
kind: "monthly"
hour: number
minute: number
dayOfMonth: number
occurrenceLimit?: number | null
}
| {
kind: "holiday"
hour: number
minute: number
sourceId: string
matchMode: HolidayMatchMode
}
| {
kind: "custom"
hour: number
minute: number
startDateTimestamp: number
skipDays: number
ringDays: number
occurrenceLimit?: number | null
}
export type AlarmRecord = {
id: string
title: string
enabled: boolean
snoozeMinutes: number
soundName: string
repeatRule: AlarmRepeatRule
completedOccurrences?: number
systemAlarmIds: string[]
lastScheduledAt: number | null
createdAt: number
updatedAt: number
}
export type HolidayCalendarSource = {
id: string
title: string
url: string
holidayDates: string[]
holidayItems: Array<{
id: string
dateKey: string
title: string
kind: "off" | "work" | "unknown"
}>
lastSyncedAt: number | null
}
export type AlarmDraft = {
title: string
snoozeMinutes: number
soundName: string
repeatRule: AlarmRepeatRule
}
export type CustomAlarmState = {
alarms: AlarmRecord[]
holidaySources: HolidayCalendarSource[]
availableSounds: string[]
alarmCardGradientEnabled: boolean
managedSystemAlarmIds: string[]
cleanupCandidateAlarmIds: string[]
alarmConfigurationVersion: number
}