Skip to main content

User

The User model represents an individual account. Users can create worlds, join worlds, participate in events, RSVP to events, and author notes.

Fields

FieldTypeAttributesDescription
idString@id, @default(cuid())Unique user ID
usernameString@uniqueUser's unique username
passwordStringHashed password
saltStringSalt used for password hashing
refreshTokenString?Refresh token for session management (optional)
createdAtDateTime@default(now())Timestamp when the user was created
membershipsWorldMembership[]@relationWorlds the user is a member of
eventsEvent[]@relationEvents created by the user
RSVPsEventRSVP[]@relationEvents the user has RSVP’d to
notesNote[]@relationNotes authored by the user

Relationships

  • User has many WorldMemberships (can join or create worlds).
  • User can create many Events.
  • User can RSVP to many Events via EventRSVP.
  • User can author many Notes.

Example Record

{
"id": "user123",
"username": "player1",
"password": "<hashed>",
"salt": "<random_salt>",
"refreshToken": "refresh_token_value",
"createdAt": "2025-09-01T18:00:00.000Z",
"memberships": [{ "worldId": "world123", "role": "OWNER" }],
"events": [{ "id": "event1", "name": "Boss Raid" }],
"RSVPs": [{ "eventId": "event1" }],
"notes": [{ "id": "note1", "title": "Strategy" }]
}