42 lines
1.8 KiB
Go
42 lines
1.8 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
// WechatBinding 商户微信公众号绑定
|
|
type WechatBinding struct {
|
|
ID uint64 `gorm:"column:id;primaryKey;autoIncrement"`
|
|
AppID string `gorm:"column:app_id;size:32;not null;uniqueIndex"`
|
|
WxAppID string `gorm:"column:wx_app_id;size:32;not null"` // 微信公众号/小程序 AppID
|
|
WxSecret string `gorm:"column:wx_secret;type:text;not null"` // AES 加密存储
|
|
TemplateID string `gorm:"column:template_id;size:64;not null"` // 消息模板 ID
|
|
Status int8 `gorm:"column:status;not null;default:1"`
|
|
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime:milli"`
|
|
UpdatedAt time.Time `gorm:"column:updated_at;autoUpdateTime:milli"`
|
|
}
|
|
|
|
func (WechatBinding) TableName() string { return "wechat_binding" }
|
|
|
|
// WechatMessageStatus 微信消息发送状态
|
|
type WechatMessageStatus string
|
|
|
|
const (
|
|
WechatMessageStatusPending WechatMessageStatus = "PENDING"
|
|
WechatMessageStatusSuccess WechatMessageStatus = "SUCCESS"
|
|
WechatMessageStatusFailed WechatMessageStatus = "FAILED"
|
|
)
|
|
|
|
// WechatMessageLog 微信消息发送日志
|
|
type WechatMessageLog struct {
|
|
ID uint64 `gorm:"column:id;primaryKey;autoIncrement"`
|
|
AppID string `gorm:"column:app_id;size:32;not null;index"`
|
|
TradeNo string `gorm:"column:trade_no;size:32;index"`
|
|
OpenID string `gorm:"column:open_id;size:64;not null"`
|
|
TemplateID string `gorm:"column:template_id;size:64;not null"`
|
|
Status WechatMessageStatus `gorm:"column:status;size:20;not null;default:PENDING"`
|
|
ErrMsg string `gorm:"column:err_msg;size:256"`
|
|
SentAt *time.Time `gorm:"column:sent_at"`
|
|
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime:milli"`
|
|
}
|
|
|
|
func (WechatMessageLog) TableName() string { return "wechat_message_log" }
|