domain

package
v0.1.17 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AllowedEmail added in v0.1.13

type AllowedEmail struct {
	ID    uuid.UUID
	Email string
}

type AuthProvider

type AuthProvider struct {
	// ID is nil only before persistence.
	// After loading or creating a authProvider, ID is always non-nil.
	ID        uuid.UUID
	CreatedAt time.Time
	UpdatedAt time.Time

	UserID   uuid.UUID
	Provider Provider

	ProviderUserID *string
	PasswordHash   *string
}

type Challenge added in v0.1.12

type Challenge struct {
	ID uuid.UUID

	CreatedAt  time.Time
	UpdatedAt  time.Time
	ExpiresAt  time.Time
	ConsumedAt *time.Time

	Purpose      ChallengePurpose
	Email        string
	AttemptCount int
	MaxAttempts  int

	ResendCount int
	MaxResends  int
	LastSentAt  *time.Time
}

func (Challenge) HasAttemptsRemaining added in v0.1.12

func (c Challenge) HasAttemptsRemaining() bool

func (Challenge) IsConsumed added in v0.1.12

func (c Challenge) IsConsumed() bool

func (Challenge) IsExpired added in v0.1.12

func (c Challenge) IsExpired(now time.Time) bool

type ChallengePurpose added in v0.1.12

type ChallengePurpose string
const (
	ChallengePurposeSignup        ChallengePurpose = "signup"
	ChallengePurposePasswordReset ChallengePurpose = "password_reset"
	ChallengePurposeEmailChange   ChallengePurpose = "email_change"
)

type EmailJob added in v0.1.12

type EmailJob struct {
	ID          uuid.UUID
	ChallengeID *uuid.UUID

	CreatedAt time.Time
	UpdatedAt time.Time

	ToEmail             string
	Template            EmailTemplate
	TemplateData        []byte
	Status              EmailJobStatus
	AttemptCount        int
	ProcessingStartedAt *time.Time
	LastError           *string
	NextAttemptAt       time.Time
	SentAt              *time.Time
}

type EmailJobStatus added in v0.1.12

type EmailJobStatus string
const (
	EmailJobStatusPending    EmailJobStatus = "pending"
	EmailJobStatusProcessing EmailJobStatus = "processing"
	EmailJobStatusSent       EmailJobStatus = "sent"
	EmailJobStatusFailed     EmailJobStatus = "failed"
)

type EmailTemplate added in v0.1.12

type EmailTemplate string
const (
	EmailTemplateSignupCode        EmailTemplate = "signup_code"
	EmailTemplatePasswordResetCode EmailTemplate = "password_reset_code"
	EmailTemplateEmailChangeCode   EmailTemplate = "email_change_code"
)

type PendingEmailChange added in v0.1.15

type PendingEmailChange struct {
	ID          uuid.UUID
	CreatedAt   time.Time
	ChallengeID uuid.UUID
	UserID      uuid.UUID
	OldEmail    string
	NewEmail    string
}

type PendingPasswordReset added in v0.1.14

type PendingPasswordReset struct {
	ID           uuid.UUID
	CreatedAt    time.Time
	ChallengeID  uuid.UUID
	UserID       uuid.UUID
	PasswordHash string
}
type PendingProviderLink struct {
	ID        uuid.UUID
	CreatedAt time.Time

	UserID    uuid.UUID
	SessionID uuid.UUID
	Provider  Provider

	ExpiresAt  time.Time
	ConsumedAt *time.Time
}

type PendingSignupAction added in v0.1.12

type PendingSignupAction struct {
	ID          uuid.UUID
	ChallengeID uuid.UUID

	CreatedAt time.Time
	UpdatedAt time.Time

	Email        string
	Username     string
	PasswordHash string
}

type Provider

type Provider string
const (
	ProviderPassword Provider = "password"
	ProviderGoogle   Provider = "google"
)

type RefreshToken

type RefreshToken struct {
	ID        uuid.UUID
	CreatedAt time.Time

	SessionID uuid.UUID
	TokenHash string

	ExpiresAt  time.Time
	ConsumedAt *time.Time
}

type Session

type Session struct {
	ID     uuid.UUID
	UserID uuid.UUID

	CreatedAt time.Time
	UpdatedAt time.Time

	ExpiresAt time.Time
	RevokedAt *time.Time

	UserAgent string
}

type User

type User struct {
	ID        uuid.UUID
	CreatedAt time.Time
	UpdatedAt time.Time

	DisabledAt *time.Time

	Email    string
	Username string
}

type VerificationCode added in v0.1.12

type VerificationCode struct {
	ID          uuid.UUID
	ChallengeID uuid.UUID

	CreatedAt time.Time
	ExpiresAt time.Time

	CodeHash string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL