Appearance
DoCurious API Reference / types / NotificationPreferences
Interface: NotificationPreferences
Defined in: types/notification.types.ts:107
Full notification preference configuration with per-category, per-channel granularity.
Remarks
Master toggles (inAppEnabled, emailEnabled, pushEnabled) act as global kill switches -- when a channel is disabled at the master level, all category preferences for that channel are effectively off. Quiet hours suppress non-critical notifications during the specified time window.
Properties
categoryPreferences
categoryPreferences:
object
Defined in: types/notification.types.ts:121
Per-category, per-channel toggles
challenge_updates
challenge_updates:
object
challenge_updates.email
email:
boolean
challenge_updates.inApp
inApp:
boolean
challenge_updates.push
push:
boolean
community_activity
community_activity:
object
community_activity.email
email:
boolean
community_activity.inApp
inApp:
boolean
community_activity.push
push:
boolean
digests
digests:
object
digests.email
email:
boolean
digests.inApp
inApp:
boolean
digests.push
push:
boolean
gamification
gamification:
object
gamification.email
email:
boolean
gamification.inApp
inApp:
boolean
gamification.push
push:
boolean
gifts
gifts:
object
gifts.email
email:
boolean
gifts.inApp
inApp:
boolean
gifts.push
push:
boolean
parent_alerts
parent_alerts:
object
parent_alerts.email
email:
boolean
parent_alerts.inApp
inApp:
boolean
parent_alerts.push
push:
boolean
reminders
reminders:
object
reminders.email
email:
boolean
reminders.inApp
inApp:
boolean
reminders.push
push:
boolean
school_admin
school_admin:
object
school_admin.email
email:
boolean
school_admin.inApp
inApp:
boolean
school_admin.push
push:
boolean
social_activity
social_activity:
object
social_activity.email
email:
boolean
social_activity.inApp
inApp:
boolean
social_activity.push
push:
boolean
system
system:
object
system.email
email:
boolean
system.inApp
inApp:
boolean
system.push
push:
boolean
teacher_feedback
teacher_feedback:
object
teacher_feedback.email
email:
boolean
teacher_feedback.inApp
inApp:
boolean
teacher_feedback.push
push:
boolean
vendor
vendor:
object
vendor.email
email:
boolean
vendor.inApp
inApp:
boolean
vendor.push
push:
boolean
verification
verification:
object
verification.email
email:
boolean
verification.inApp
inApp:
boolean
verification.push
push:
boolean
createdAt?
optionalcreatedAt:string
Defined in: types/notification.types.ts:109
emailDigestFrequency
emailDigestFrequency:
"immediate"|"daily"|"weekly"|"never"
Defined in: types/notification.types.ts:139
How frequently email notifications are batched and sent
emailEnabled
emailEnabled:
boolean
Defined in: types/notification.types.ts:116
Master toggle -- disables all email notifications when false
id?
optionalid:string
Defined in: types/notification.types.ts:108
inAppEnabled
inAppEnabled:
boolean
Defined in: types/notification.types.ts:114
Master toggle -- disables all in-app notifications when false
pushEnabled
pushEnabled:
boolean
Defined in: types/notification.types.ts:118
Master toggle -- disables all push notifications when false
quietHoursEnabled
quietHoursEnabled:
boolean
Defined in: types/notification.types.ts:130
Whether quiet hours are active
quietHoursEnd
quietHoursEnd:
string
Defined in: types/notification.types.ts:134
Quiet hours end time in HH:mm format
quietHoursStart
quietHoursStart:
string
Defined in: types/notification.types.ts:132
Quiet hours start time in HH:mm format
quietHoursTimezone
quietHoursTimezone:
string
Defined in: types/notification.types.ts:136
IANA timezone for quiet hours (e.g., "America/New_York")
updatedAt?
optionalupdatedAt:string
Defined in: types/notification.types.ts:110
userId
userId:
string
Defined in: types/notification.types.ts:111