45 lines
1.0 KiB
Go
45 lines
1.0 KiB
Go
package models
|
|
|
|
import (
|
|
"gorm.io/datatypes"
|
|
"time"
|
|
)
|
|
|
|
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"`
|
|
Avatar *string `json:"avatar"`
|
|
Picture *string `json:"picture"`
|
|
SenderID *uint `json:"sender_id"`
|
|
|
|
Account Account `json:"account"`
|
|
AccountID uint `json:"account_id"`
|
|
|
|
ReadAt *time.Time `json:"read_at"`
|
|
|
|
IsRealtime bool `json:"is_realtime" gorm:"-"`
|
|
IsForcePush bool `json:"is_force_push" gorm:"-"`
|
|
}
|
|
|
|
const (
|
|
NotifySubscriberFirebase = "firebase"
|
|
NotifySubscriberAPNs = "apple"
|
|
)
|
|
|
|
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"`
|
|
|
|
Account Account `json:"account"`
|
|
AccountID uint `json:"account_id"`
|
|
}
|