package models import ( "context" "time" ) // AuthToken represents an authentication token for a user session. type AuthToken struct { Base Token string `json:"-"` UserID string `json:"userId"` CreatedAt time.Time `json:"createdAt"` ExpiresAt *time.Time `json:"expiresAt,omitempty"` LastUsedAt *time.Time `json:"lastUsedAt,omitempty"` } // User returns the user who owns this token. func (t *AuthToken) User(ctx context.Context) (*User, error) { u := &User{} u.SetDB(t.db) err := t.GetDB().QueryRowContext(ctx, ` SELECT id, nick, password_hash, created_at, updated_at, last_seen_at FROM users WHERE id = ?`, t.UserID, ).Scan( &u.ID, &u.Nick, &u.PasswordHash, &u.CreatedAt, &u.UpdatedAt, &u.LastSeenAt, ) if err != nil { return nil, err } return u, nil }