entity

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package entity contains domain data models representing application domain objects.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Account

type Account struct {
	ID        string    `json:"id"`
	UserID    string    `json:"userId"`
	Provider  string    `json:"provider"`
	Password  string    `json:"-"`
	CreatedAt time.Time `json:"createdAt"`
	UpdatedAt time.Time `json:"updatedAt"`
}

Account represents an authentication provider account associated with a user.

type ExtraContainer added in v1.0.0

type ExtraContainer struct {
	// Extra holds dynamic metadata passed through event interceptors or custom extensions.
	Extra map[string]any `json:"extra,omitempty"`
}

ExtraContainer provides a reusable map for dynamic metadata with Set and Get methods. Embed entity.ExtraContainer in domain entities, DTOs, and session options.

func (*ExtraContainer) Get added in v1.0.0

func (e *ExtraContainer) Get(key string) (any, bool)

Get retrieves a value from the Extra metadata map by key.

func (*ExtraContainer) Set added in v1.0.0

func (e *ExtraContainer) Set(key string, val any)

Set stores a key-value pair in the Extra metadata map.

type Passkey added in v0.9.0

type Passkey struct {
	ID           string    `json:"id"`
	Name         *string   `json:"name,omitempty"`       // Nombre amigable o resuelto por AAGUID
	UserID       string    `json:"userId"`               // ID del usuario propietario
	CredentialID string    `json:"credentialID"`         // Identificador único de credencial (Base64URL)
	PublicKey    string    `json:"publicKey"`            // Clave pública COSE / PKIX (Base64)
	Counter      uint32    `json:"counter"`              // Contador de firmas para mitigación de repetición/clonado
	DeviceType   string    `json:"deviceType"`           // "singleDevice" o "multiDevice" (sincronizada)
	BackedUp     bool      `json:"backedUp"`             // Indica si la clave tiene respaldo en la nube (iCloud, Google, etc.)
	Transports   *string   `json:"transports,omitempty"` // Transportes soportados ("usb,ble,nfc,internal,hybrid")
	AAGUID       *string   `json:"aaguid,omitempty"`     // GUID del modelo de autenticador
	CreatedAt    time.Time `json:"createdAt"`
	UpdatedAt    time.Time `json:"updatedAt"`
}

Passkey representa una credencial WebAuthn registrada para un usuario.

type Session

type Session struct {
	ID                   string         `json:"id"`
	UserID               string         `json:"userId"`
	Token                string         `json:"token"`
	ExpiresAt            time.Time      `json:"expiresAt"`
	CreatedAt            time.Time      `json:"createdAt"`
	IPAddress            string         `json:"ipAddress,omitempty"`
	UserAgent            string         `json:"userAgent,omitempty"`
	ImpersonatedBy       *string        `json:"impersonatedBy,omitempty"`
	ActiveOrganizationID *string        `json:"activeOrganizationId,omitempty"`
	ActiveTeamID         *string        `json:"activeTeamId,omitempty"`
	DeviceID             *string        `json:"deviceId,omitempty"`
	Extra                map[string]any `json:"extra,omitempty"`
	UpdatedAt            *time.Time     `json:"updatedAt,omitempty"`
}

Session represents an active authentication session belonging to a user.

type User

type User struct {
	ID                  string     `json:"id"`
	Name                string     `json:"name"`
	Email               string     `json:"email"`
	Username            string     `json:"username,omitempty"`
	DisplayUsername     string     `json:"displayUsername,omitempty"`
	PasswordHash        string     `json:"-"`
	EmailVerified       bool       `json:"emailVerified"`
	PhoneNumber         *string    `json:"phoneNumber,omitempty"`
	PhoneNumberVerified bool       `json:"phoneNumberVerified,omitempty"`
	TwoFactorEnabled    bool       `json:"twoFactorEnabled"`
	Role                string     `json:"role,omitempty"`
	Banned              bool       `json:"banned"`
	BanReason           *string    `json:"banReason,omitempty"`
	BanExpires          *time.Time `json:"banExpires,omitempty"`
	LastLoginMethod     *string    `json:"lastLoginMethod,omitempty"`
	IsAnonymous         bool       `json:"isAnonymous,omitempty"`
	CreatedAt           time.Time  `json:"createdAt"`
	UpdatedAt           time.Time  `json:"updatedAt"`
}

User represents an authenticated application user.

type VerificationToken

type VerificationToken struct {
	Identifier string    `json:"identifier"`
	Token      string    `json:"token"`
	ExpiresAt  time.Time `json:"expiresAt"`
}

VerificationToken represents a token used for email verification or password reset operations.

Jump to

Keyboard shortcuts

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