52 lines
1.6 KiB
Go
52 lines
1.6 KiB
Go
package notify
|
|
|
|
// Notification represents a message that can be sent to subscribers.
|
|
// Notifications contain metadata about the message (Level, Title),
|
|
// the content (Message, Details), and an optional Action field for
|
|
// custom application data.
|
|
type Notification struct {
|
|
// Target specifies the subscriber ID to receive this notification.
|
|
// If empty when passed to NotifyAll(), the notification is broadcast
|
|
// to all subscribers. If set, only the targeted subscriber receives it.
|
|
Target Target
|
|
|
|
// Level indicates the notification severity (Success, Info, Warn, Error).
|
|
Level Level
|
|
|
|
// Title is a short summary of the notification.
|
|
Title string
|
|
|
|
// Message is the main notification content.
|
|
Message string
|
|
|
|
// Details contains additional information about the notification.
|
|
Details string
|
|
|
|
// Action is an optional field for custom application data.
|
|
// This can be used to attach contextual information, callback functions,
|
|
// URLs, or any other data needed by the notification handler.
|
|
Action any
|
|
}
|
|
|
|
// Target is a unique identifier for a subscriber.
|
|
// Targets are automatically generated when a subscriber is created
|
|
// using cryptographic random bytes (16 bytes, base64 URL-encoded).
|
|
type Target string
|
|
|
|
// Level represents the severity or type of a notification.
|
|
type Level string
|
|
|
|
const (
|
|
// LevelSuccess indicates a successful operation or positive outcome.
|
|
LevelSuccess Level = "success"
|
|
|
|
// LevelInfo indicates general informational messages.
|
|
LevelInfo Level = "info"
|
|
|
|
// LevelWarn indicates warnings that don't require immediate action.
|
|
LevelWarn Level = "warn"
|
|
|
|
// LevelError indicates errors that require attention.
|
|
LevelError Level = "error"
|
|
)
|