Smail/server/models/verification_event.go

34 lines
1.5 KiB
Go

package models
import "time"
// VerificationEvent 保存邮箱验证码运营数据,不保存验证码、挑战值或校验值。
type VerificationEvent struct {
ID int `xorm:"id bigint unsigned not null pk autoincr" json:"-"`
UserID int `xorm:"user_id bigint not null default(0) index" json:"-"`
Purpose string `xorm:"purpose varchar(32) notnull index" json:"purpose"`
Action string `xorm:"action varchar(32) notnull index" json:"action"`
Outcome string `xorm:"outcome varchar(16) notnull index" json:"outcome"`
AccountFingerprint string `xorm:"account_fingerprint char(80) null" json:"-"`
EmailFingerprint string `xorm:"email_fingerprint char(80) null" json:"-"`
IPFingerprint string `xorm:"ip_fingerprint char(80) null" json:"-"`
ExpiresAt time.Time `xorm:"expires_at datetime notnull index" json:"-"`
RetentionClass string `xorm:"retention_class varchar(16) notnull index" json:"-"`
InvestigationHold bool `xorm:"investigation_hold bool notnull default(0) index" json:"-"`
CreatedAt time.Time `xorm:"created_at datetime notnull index" json:"created_at"`
}
func (VerificationEvent) TableName() string {
return "verification_event"
}
const (
VerificationActionIssue = "issue"
VerificationActionVerify = "verify"
VerificationActionCleanup = "cleanup"
VerificationOutcomeSuccess = "success"
VerificationOutcomeFailure = "failure"
VerificationOutcomeBlocked = "blocked"
)