Skip to content

Commit

Permalink
Merge pull request #14 from iaurg/feat/base-entities
Browse files Browse the repository at this point in the history
Feature: Add initial entities
  • Loading branch information
iaurg committed May 30, 2023
2 parents bfe24c4 + 5ebe04f commit a441c36
Showing 1 changed file with 89 additions and 4 deletions.
93 changes: 89 additions & 4 deletions backend/src/database/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,95 @@ datasource db {
url = env("DATABASE_URL")
}

enum UserStatus {
ONLINE
OFFLINE
AWAY
BUSY
}

model User {
id Int @id @default(autoincrement())
email String @unique
name String?
id String @id @default(uuid())
username String @unique
password String
mfaEnabled Boolean
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
friendships Friendship[] @relation("FriendshipUser")
profile UserProfile?
}

model Friend {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
friendships Friendship[] @relation("FriendshipFriend")
}

enum FriendshipStatus {
PENDING
ACCEPTED
DECLINED
BLOCKED
}

model Friendship {
id String @id @default(uuid())
user User @relation("FriendshipUser", fields: [userId], references: [id])
friend Friend @relation("FriendshipFriend", fields: [friendId], references: [id])
userId String
friendId String
status FriendshipStatus
@@unique([userId, friendId])
}

model UserProfile {
id String @id @default(uuid())
user User @relation(fields: [userId], references: [id])
userId String @unique
bio String?
avatar String?
status UserStatus
}

model Message {
id String @id @default(uuid())
authorId String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
chat Chat @relation(fields: [chatId], references: [id])
chatId String
content String
}

enum chatType {
PUBLIC
PRIVATE
PROTECTED
}

model Chat {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
messages Message[]
users String[]
chatType chatType
password String?
}

model Game {
id String @id @default(uuid())
createdAt DateTime @default(now())
scoreTable ScoreTable?
}

model ScoreTable {
id String @id @default(uuid())
game Game @relation(fields: [gameId], references: [id])
gameId String @unique
userId String
otherId String
userScore Int
otherScore Int
}

0 comments on commit a441c36

Please sign in to comment.