Files
elysium/apps/api/prisma/schema.prisma
T
hikari 5025948530 feat: add community role grant and join prompt for players
- Grant Elysian Discord role to players on OAuth login (new and returning)
- Add inGuild flag to Player schema, seeded from role grant response
- Connect Discord Gateway WebSocket to keep inGuild in sync on join/leave
- Return inGuild from load endpoint; expose in game context
- Show join community modal once per session when inGuild is false
2026-03-24 18:10:22 -07:00

48 lines
1.4 KiB
Plaintext

generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mongodb"
url = env("DATABASE_URL")
}
model Player {
id String @id @default(auto()) @map("_id") @db.ObjectId
discordId String @unique
username String
discriminator String
avatar String?
characterName String @default("")
pronouns String @default("")
characterRace String @default("")
characterClass String @default("")
bio String @default("")
guildName String @default("")
guildDescription String @default("")
profileSettings Json?
unlockedTitles Json?
activeTitle String @default("")
createdAt Float
lastSavedAt Float
totalGoldEarned Float @default(0)
totalClicks Float @default(0)
lifetimeGoldEarned Float @default(0)
lifetimeClicks Float @default(0)
lifetimeBossesDefeated Float @default(0)
lifetimeQuestsCompleted Float @default(0)
lifetimeAdventurersRecruited Float @default(0)
lifetimeAchievementsUnlocked Float @default(0)
lastLoginDate String?
loginStreak Int @default(1)
inGuild Boolean @default(false)
}
model GameState {
id String @id @default(auto()) @map("_id") @db.ObjectId
discordId String @unique
state Json
updatedAt Float
}