package push import "context" // Notification is a system push. Mute is decided in Deliver Worker, not gnet. // Title/Body must be localized with i18n.Notify using the recipient device language. type Notification struct { UserID int64 DeviceID uint64 ConversationID int64 Type string Title string Body string Badge int CollapseKey string } type Notifier interface { Notify(ctx context.Context, n *Notification) error } // Noop satisfies V3: the interface exists; APNS/FCM can wait. type Noop struct{} func (Noop) Notify(context.Context, *Notification) error { return nil }