package model import ( "time" "github.com/tech/sendico/pkg/db/storable" "github.com/tech/sendico/pkg/mservice" "go.mongodb.org/mongo-driver/bson/primitive" ) type ConfirmationTarget string const ( ConfirmationTargetLogin ConfirmationTarget = "login" ConfirmationTargetPayout ConfirmationTarget = "payout" ) type ConfirmationCode struct { storable.Base `bson:",inline" json:",inline"` AccountRef primitive.ObjectID `bson:"accountRef" json:"accountRef"` Destination string `bson:"destination" json:"destination"` Target ConfirmationTarget `bson:"target" json:"target"` CodeHash []byte `bson:"codeHash" json:"codeHash,omitempty"` Salt []byte `bson:"salt" json:"salt,omitempty"` ExpiresAt time.Time `bson:"expiresAt" json:"expiresAt"` MaxAttempts int `bson:"maxAttempts" json:"maxAttempts"` ResendLimit int `bson:"resendLimit" json:"resendLimit"` CooldownUntil time.Time `bson:"cooldownUntil" json:"cooldownUntil"` Used bool `bson:"used" json:"used"` Attempts int `bson:"attempts" json:"attempts"` ResendCount int `bson:"resendCount" json:"resendCount"` } func (*ConfirmationCode) Collection() string { return mservice.Confirmations }