21 lines
778 B
Go
21 lines
778 B
Go
package models
|
|
|
|
// NotificationPreference stores a user's per-type notification delivery preference.
|
|
// Type "*" acts as a catch-all default for types without an explicit row.
|
|
type NotificationPreference struct {
|
|
ID string `json:"id" db:"id"`
|
|
UserID string `json:"user_id" db:"user_id"`
|
|
Type string `json:"type" db:"type"` // notification type or "*"
|
|
InApp bool `json:"in_app" db:"in_app"` // show in-app bell/panel
|
|
Email bool `json:"email" db:"email"` // send email
|
|
}
|
|
|
|
// ResolvedPreference is the effective preference after resolution chain.
|
|
type ResolvedPreference struct {
|
|
InApp bool
|
|
Email bool
|
|
}
|
|
|
|
// SystemDefaultPreference is the fallback when no user preference exists.
|
|
var SystemDefaultPreference = ResolvedPreference{InApp: true, Email: false}
|