167 lines
4.5 KiB
Go
167 lines
4.5 KiB
Go
// Package message defines the App message tab inbox domain owned by activity-service.
|
|
package message
|
|
|
|
const (
|
|
// SectionUser is sourced from Tencent IM SDK and never persisted by this service.
|
|
SectionUser = "user"
|
|
// SectionSystem stores account, wallet, room and application notifications.
|
|
SectionSystem = "system"
|
|
// SectionActivity stores activity, reward and operational campaign notifications.
|
|
SectionActivity = "activity"
|
|
|
|
SourceTencentIMSDK = "tencent_im_sdk"
|
|
SourceBackend = "backend"
|
|
|
|
StatusVisible = "visible"
|
|
StatusRecalled = "recalled"
|
|
StatusHidden = "hidden"
|
|
StatusExpired = "expired"
|
|
|
|
FanoutStatusPending = "pending"
|
|
FanoutStatusRunning = "running"
|
|
FanoutStatusRetrying = "retrying"
|
|
FanoutStatusFailed = "failed"
|
|
FanoutStatusComplete = "completed"
|
|
|
|
TargetScopeSingleUser = "single_user"
|
|
TargetScopeUserIDs = "user_ids"
|
|
TargetScopeRegion = "region"
|
|
TargetScopeCountry = "country"
|
|
TargetScopeAllActiveUsers = "all_active_users"
|
|
TargetScopeAllRegistered = "all_registered_users"
|
|
)
|
|
|
|
// TabSection is the message tab summary returned to App clients.
|
|
type TabSection struct {
|
|
Section string
|
|
Title string
|
|
UnreadCount int64
|
|
Source string
|
|
}
|
|
|
|
// InboxMessage is the user-visible snapshot stored in user_inbox_messages.
|
|
type InboxMessage struct {
|
|
AppCode string
|
|
MessageID string
|
|
UserID int64
|
|
MessageType string
|
|
Producer string
|
|
ProducerEventID string
|
|
ProducerEventType string
|
|
AggregateType string
|
|
AggregateID string
|
|
TemplateID string
|
|
TemplateVersion string
|
|
Title string
|
|
Summary string
|
|
Body string
|
|
IconURL string
|
|
ImageURL string
|
|
ActionType string
|
|
ActionParam string
|
|
Priority int32
|
|
Status string
|
|
ReadAtMS int64
|
|
DeletedAtMS int64
|
|
SentAtMS int64
|
|
ExpireAtMS int64
|
|
MetadataJSON string
|
|
CreatedAtMS int64
|
|
UpdatedAtMS int64
|
|
}
|
|
|
|
// Read reports whether the user has marked the message as read.
|
|
func (m InboxMessage) Read() bool {
|
|
return m.ReadAtMS > 0
|
|
}
|
|
|
|
// MessageTemplate is an active server-owned content template snapshot source.
|
|
type MessageTemplate struct {
|
|
AppCode string
|
|
TemplateID string
|
|
TemplateVersion string
|
|
MessageType string
|
|
Locale string
|
|
Title string
|
|
Summary string
|
|
Body string
|
|
IconURL string
|
|
ImageURL string
|
|
ActionType string
|
|
ActionParam string
|
|
Status string
|
|
CreatedBy string
|
|
CreatedAtMS int64
|
|
UpdatedAtMS int64
|
|
}
|
|
|
|
// ListQuery is the stable cursor query for system/activity inbox lists.
|
|
type ListQuery struct {
|
|
UserID int64
|
|
Section string
|
|
Limit int
|
|
CursorSentAtMS int64
|
|
CursorMessageID string
|
|
NowMS int64
|
|
}
|
|
|
|
// CreateInput carries a validated single-user inbox creation command.
|
|
type CreateInput struct {
|
|
TargetUserID int64
|
|
Producer string
|
|
ProducerEventID string
|
|
ProducerEventType string
|
|
MessageType string
|
|
AggregateType string
|
|
AggregateID string
|
|
TemplateID string
|
|
TemplateVersion string
|
|
Title string
|
|
Summary string
|
|
Body string
|
|
IconURL string
|
|
ImageURL string
|
|
ActionType string
|
|
ActionParam string
|
|
Priority int32
|
|
SentAtMS int64
|
|
ExpireAtMS int64
|
|
MetadataJSON string
|
|
}
|
|
|
|
// FanoutJob stores a background fanout command without executing user selection in the request path.
|
|
type FanoutJob struct {
|
|
AppCode string
|
|
JobID string
|
|
CommandID string
|
|
MessageType string
|
|
TargetScope string
|
|
TargetFilterJSON string
|
|
TemplateSnapshotJSON string
|
|
Status string
|
|
AttemptCount int32
|
|
CursorUserID int64
|
|
TotalCount int64
|
|
SuccessCount int64
|
|
FailureCount int64
|
|
BatchSize int32
|
|
NextRunAtMS int64
|
|
LockedBy string
|
|
LockedUntilMS int64
|
|
ErrorMessage string
|
|
CreatedBy string
|
|
CreatedAtMS int64
|
|
UpdatedAtMS int64
|
|
}
|
|
|
|
// CreateFanoutInput is the validated admin or producer command for fanout job creation.
|
|
type CreateFanoutInput struct {
|
|
CommandID string
|
|
MessageType string
|
|
TargetScope string
|
|
TargetFilterJSON string
|
|
TemplateSnapshotJSON string
|
|
BatchSize int32
|
|
CreatedBy string
|
|
}
|