bilibili-backup/app/service/main/push/model/model.go

192 lines
5.6 KiB
Go
Raw Normal View History

2019-04-22 10:59:20 +08:00
package model
import (
xtime "go-common/library/time"
)
// Report APP report info.
type Report struct {
ID int64 `json:"id"`
APPID int64 `json:"app_id"` // application
PlatformID int `json:"platform_id"`
Mid int64 `json:"mid"`
Buvid string `json:"buvid"`
Build int `json:"build"`
TimeZone int `json:"time_zone"`
NotifySwitch int `json:"notify_switch"` // global notification switch
DeviceToken string `json:"device_token"`
DeviceBrand string `json:"device_brand"`
DeviceModel string `json:"device_model"`
OSVersion string `json:"os_version"`
Extra string `json:"extra"`
Dtime int64 `json:"dtime"`
}
// Task push task info.
type Task struct {
ID string `json:"id"` // task id
Job int64 `json:"job"` // 多个子任务拥有同一个 job name
Type int `json:"type"` // 任务类型 1:后台全量 2:后台批量 3:业务推送
APPID int64 `json:"app_id"`
BusinessID int64 `json:"business_id"`
PlatformID int `json:"platform_id"`
Platform []int `json:"platform"`
Title string `json:"title"`
Summary string `json:"summary"`
LinkType int8 `json:"link_type"`
LinkValue string `json:"link_value"`
Build map[int]*Build `json:"build"`
Sound int `json:"sound"`
Vibration int `json:"vibration"`
PassThrough int `json:"pass_through"`
MidFile string `json:"mid_file"`
Progress *Progress `json:"progress"`
PushTime xtime.Time `json:"push_time"`
ExpireTime xtime.Time `json:"expire_time"`
Status int8 `json:"status"`
Group string `json:"group"`
ImageURL string `json:"image_url"`
Extra *TaskExtra `json:"extra"`
}
// TaskExtra task extra.
type TaskExtra struct {
Group string `json:"group"`
Filename string `json:"filename,omitempty"` // 任务文件的名称(前端展示用)
}
// Build version limit.
type Build struct {
Build int `json:"build"`
Condition string `json:"condition"`
}
// Progress task push progress.
type Progress struct {
// total indicators
Status int8 `json:"st"` // 任务状态
MidTotal int64 `json:"mid_total"` // 任务接收到的mid总数
MidValid int64 `json:"mid_valid"` // 能查到token的mid数
MidMissed int64 `json:"mm"` // mid_missed 查不到token的mid数
MidMissedSuccess int64 `json:"mms"` // mid_missed_success 无效mid补偿推送成功的
MidMissedFailed int64 `json:"mmf"` // mid_missed_failed 无效mid补偿推送失败的
TokenTotal int64 `json:"token_total"` // 一共要推送的token数
TokenValid int64 `json:"token_valid"` // 有效token
TokenDelay int64 `json:"token_delay"` // 延迟推送的token
TokenSuccess int64 `json:"token_success"` // 推送成功的
TokenFailed int64 `json:"token_failed"` // 推送失败的
// brand indicators
Brands map[int]int64 `json:"brands"` // 各品牌统计数据
// server indicators
RetryTimes int64 `json:"retry"` // 重试次数
BeginTime xtime.Time `json:"btime"` // 开始时间
PushTime xtime.Time `json:"ptime"` // 开始推送时间
EndTime xtime.Time `json:"etime"` // 结束时间
}
// APP appication
type APP struct {
ID int64
Name string
PushLimitUser int
}
// Business business
type Business struct {
ID int64 `json:"id"`
APPID int64 `json:"app_id"`
Name string `json:"name"`
Desc string `json:"desc"`
Token string `json:"token"`
Sound int `json:"sound"`
Vibration int `json:"vibration"`
ReceiveSwitch int `json:"receive_switch"`
PushSwitch int `json:"push_switch"`
SilentTime BusinessSilentTime `json:"silent_time"`
PushLimitUser int `json:"push_limit_user"`
Whitelist int `json:"whitelist"`
}
// BusinessSilentTime .
type BusinessSilentTime struct {
BeginHour, EndHour int
BeginMinute, EndMinute int
}
// PushInfo push message.
type PushInfo struct {
Job int64
TaskID string
APPID int64
Title string
Summary string
LinkType int8
LinkValue string
PushTime xtime.Time
ExpireTime xtime.Time
PassThrough int
Sound int
Vibration int
ImageURL string
}
// PushItem push item.
type PushItem struct {
Platform int
Token string
Mid int64
Sound int
Vibration int
Build int
}
// PushChanItem push channel item.
type PushChanItem struct {
Info *PushInfo
Item *PushItem
}
// PushChanItems push channel item.
type PushChanItems struct {
Info *PushInfo
Items []*PushItem
}
// Auth cert or auth info.
type Auth struct {
APPID int64
PlatformID int
Name string // 第三方名称 for android例如 小米
Key string // android的包名 或 iOS的 cert key
Value string // android的 auth 或 iOS的 cert value
BundleID string // just for iOS
}
// HTTPResponse http response.
type HTTPResponse struct {
Code int
Msg string
}
// Callback push callback.
type Callback struct {
Task string
APP int64
Platform int
Mid int64
Pid int // mobi_app ID
Token string
Buvid string
Click uint8 // 是否被点击
Brand int
Extra *CallbackExtra
}
// CallbackExtra .
type CallbackExtra struct {
Status int `json:"st"`
Channel int `json:"chan"`
}