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" }