World
The World model represents a game world. Worlds are created by users and can have members, bosses, notes, events, and a unique join code.
Fields
| Field | Type | Attributes | Description |
|---|---|---|---|
| id | String | @id, @default(cuid()) | Unique world ID |
| name | String | Name of the world | |
| description | String | Description of the world | |
| createdAt | DateTime | @default(now()) | Timestamp when the world was created |
| joinCode | JoinCode? | @relation | Unique join code for this world |
| memberships | WorldMembership[] | @relation | Members of the world |
| bosses | WorldBossProgress[] | @relation | Boss progress records for this world |
| notes | Note[] | @relation | Notes created in this world |
| events | Event[] | @relation | Events scheduled in this world |
Relationships
- World can have one JoinCode.
- World has many WorldMemberships (users with roles).
- World has many Bosses (via WorldBossProgress).
- World has many Notes.
- World has many Events.
Example Record
{
"id": "world123",
"name": "Adventure Realm",
"description": "A world for epic quests.",
"createdAt": "2025-09-01T18:00:00.000Z",
"joinCode": {
"id": "joincode1",
"code": "abc123"
},
"memberships": [{ "userId": "user123", "role": "OWNER" }],
"bosses": [{ "id": "progress1", "bossId": "boss1", "killed": false }],
"notes": [{ "id": "note1", "title": "Strategy" }],
"events": [{ "id": "event1", "name": "Boss Raid" }]
}