package models import ( "context" "fmt" "time" ) // Session represents a server-held user session. type Session struct { Base ID string `json:"id"` UserID string `json:"userId"` CreatedAt time.Time `json:"createdAt"` LastActiveAt time.Time `json:"lastActiveAt"` ExpiresAt *time.Time `json:"expiresAt,omitempty"` } // User returns the user who owns this session. func (s *Session) User(ctx context.Context) (*User, error) { if ul := s.GetUserLookup(); ul != nil { return ul.GetUserByID(ctx, s.UserID) } return nil, fmt.Errorf("user lookup not available") }