feat(sms): 新增节点短信提醒(审核未通过/被租用需辅助/上架未成交)
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"gorm.io/datatypes"
|
||||
)
|
||||
|
||||
// SmsMessage 是节点短信发送队列记录。
|
||||
// 业务事务内只写入 pending,真正的发送由后台任务完成,
|
||||
// 因此短信通道异常不会影响业务提交。
|
||||
type SmsMessage struct {
|
||||
ID uint64 `gorm:"primaryKey" json:"id"`
|
||||
UserID uint64 `gorm:"not null;default:0" json:"user_id"`
|
||||
Phone string `gorm:"size:32;not null;default:''" json:"phone"`
|
||||
Node string `gorm:"size:64;not null" json:"node"`
|
||||
BizType string `gorm:"size:32;not null;default:''" json:"biz_type"`
|
||||
BizID uint64 `gorm:"not null;default:0" json:"biz_id"`
|
||||
DistributionSiteID *uint64 `gorm:"index" json:"distribution_site_id,omitempty"`
|
||||
TemplateCode string `gorm:"size:64;not null;default:''" json:"template_code"`
|
||||
TemplateParams datatypes.JSON `json:"template_params"`
|
||||
SignName string `gorm:"size:64;not null;default:''" json:"sign_name"`
|
||||
Status string `gorm:"size:16;not null;default:'pending'" json:"status"`
|
||||
SkipReason string `gorm:"size:128;not null;default:''" json:"skip_reason"`
|
||||
RetryCount int `gorm:"not null;default:0" json:"retry_count"`
|
||||
LastError string `gorm:"size:512;not null;default:''" json:"last_error"`
|
||||
SentAt *time.Time `json:"sent_at"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
func (SmsMessage) TableName() string {
|
||||
return "sms_messages"
|
||||
}
|
||||
|
||||
const (
|
||||
SmsStatusPending = "pending"
|
||||
SmsStatusSent = "sent"
|
||||
SmsStatusFailed = "failed"
|
||||
SmsStatusSkipped = "skipped"
|
||||
)
|
||||
Reference in New Issue
Block a user