Passport/pkg/internal/models/notifications.go

42 lines
1012 B
Go
Raw Normal View History

2024-02-01 07:08:40 +00:00
package models
import (
2024-06-02 12:15:04 +00:00
"gorm.io/datatypes"
)
2024-02-01 07:08:40 +00:00
type Notification struct {
BaseModel
Topic string `json:"topic"`
Title string `json:"title"`
Subtitle *string `json:"subtitle"`
Body string `json:"body"`
Metadata datatypes.JSONMap `json:"metadata"`
UserID uint `json:"user_id"`
SenderID *uint `json:"sender_id"`
IsRealtime bool `json:"is_realtime" gorm:"-"`
IsForcePush bool `json:"is_force_push" gorm:"-"`
}
// NotificationLink Used to embed into notify and render actions
type NotificationLink struct {
Label string `json:"label"`
Url string `json:"url"`
2024-02-01 07:08:40 +00:00
}
2024-02-07 15:15:16 +00:00
const (
2024-06-06 14:48:43 +00:00
NotifySubscriberFirebase = "firebase"
NotifySubscriberAPNs = "apple"
2024-02-07 15:15:16 +00:00
)
type NotificationSubscriber struct {
BaseModel
UserAgent string `json:"user_agent"`
Provider string `json:"provider"`
DeviceID string `json:"device_id" gorm:"uniqueIndex"`
DeviceToken string `json:"device_token"`
AccountID uint `json:"account_id"`
2024-02-07 15:15:16 +00:00
}