Smail/server/models/verification_rate_limit.go

22 lines
1.0 KiB
Go

package models
import "time"
// VerificationRateLimit 保存限流计数,不保存验证码、挑战值或完整身份标识。
type VerificationRateLimit struct {
ID int `xorm:"id bigint unsigned not null pk autoincr" json:"-"`
DimensionKey string `xorm:"dimension_key char(64) notnull unique" json:"-"`
DimensionType string `xorm:"dimension_type varchar(32) notnull index" json:"-"`
HourStartedAt *time.Time `xorm:"hour_started_at datetime null" json:"-"`
HourCount int `xorm:"hour_count int notnull default(0)" json:"-"`
DayStartedAt *time.Time `xorm:"day_started_at datetime null" json:"-"`
DayCount int `xorm:"day_count int notnull default(0)" json:"-"`
LastIssuedAt *time.Time `xorm:"last_issued_at datetime null" json:"-"`
ExpiresAt time.Time `xorm:"expires_at datetime notnull index" json:"-"`
UpdatedAt time.Time `xorm:"updated_at datetime notnull index" json:"-"`
}
func (VerificationRateLimit) TableName() string {
return "verification_rate_limit"
}