model

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: May 21, 2023 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IdentityTraitsEmail    = "email"
	IdentityTraitsPhone    = "phone"
	IdentityTraitsUsername = "username"
	IdentityTraitsName     = "name"
	IdentityTraitsAvatar   = "avatar"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Credential

type Credential struct {
	bun.BaseModel `bun:"table:credentials,alias:c"`

	ID         int64            `bun:",pk,autoincrement"`
	Method     CredentialMethod `bun:",notnull,default:PASSWORD"`
	Provider   string           `bun:",notnull"`
	Secret     string           `bun:",notnull"`
	IdentityID int64            `bun:",notnull"`
	Identity   *Identity        `bun:"rel:belongs-to,join:identity_id=id"`
	Sessions   []*Session       `bun:"rel:has-many,join:id=credential_id"`
}

type CredentialMethod

type CredentialMethod string
const (
	CredentialMethodPassword CredentialMethod = "PASSWORD"
	CredentialMethodOAuth    CredentialMethod = "OAUTH"
)

type Identity

type Identity struct {
	bun.BaseModel `bun:"table:identities,alias:i"`

	ID          int64          `bun:",pk,autoincrement"`
	Traits      IdentityTraits `bun:"type:jsonb"`
	Credentials []*Credential  `bun:"rel:has-many,join:id=identity_id"`
}

type IdentityTraits

type IdentityTraits map[string]any

type OAuthState

type OAuthState struct {
	bun.BaseModel `bun:"table:oauth_states,alias:os"`

	ID        uuid.UUID `bun:",pk,type:uuid,default:uuid_generate_v4()"`
	CreatedAt time.Time `bun:",notnull,default:current_timestamp"`
	ExpiresAt time.Time `bun:",notnull"`
}

type Session

type Session struct {
	bun.BaseModel `bun:"table:sessions,alias:s"`

	ID              int64     `bun:",pk,autoincrement"`
	AuthenticatedAt time.Time `bun:",notnull,default:current_timestamp"`
	ExpiresAt       *time.Time
	CredentialID    int64       `bun:",notnull"`
	Credential      *Credential `bun:"rel:belongs-to,join:credential_id=id"`
}

Jump to

Keyboard shortcuts

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