8cf0df23b6ffd09abeb664c7873253bb27d4dba6
[sketchy-heroes.git] / prisma / schema.prisma
1 generator client {
2   provider = "prisma-client-js"
3 }
4
5 datasource db {
6   provider = "postgresql"
7   url      = env("DATABASE_URL")
8 }
9
10 enum Biome {
11   PLAINS
12   FIELDS
13   WOODLAND
14   FOREST
15   SWAMP
16   TUNDRA
17   MOUNTAIN
18   CAVE
19   DESERT
20 }
21
22
23 model ZoneBiomes {
24   id String @id @default(uuid()) @db.Uuid
25   players Player?
26   playerId String? @db.Uuid
27   biome Biome
28   maxSteps Int @default(500)
29 }
30
31 model Player {
32   id          String @id @default(uuid()) @db.Uuid
33   username    String @unique
34   password    String
35   level       Int    @default(1)
36   currency    Int    @default(0)
37   pow         Int
38   zest        Int
39   woosh       Int
40   luck        Int
41   aha         Int
42   wow         Int
43   stamina     Int
44   hp          Int
45   statPoints Int    @default(0)
46   exp         Int    @default(0)
47   zoneBiome     ZoneBiomes @relation(fields: [zoneBiomeId], references: [id])
48   zoneBiomeId String @db.Uuid
49   authToken  AuthToken?
50   steps Int @default(0)
51 }
52
53 model AuthToken {
54   token String @id @default(uuid()) @db.Uuid
55   player Player @relation(fields: [playerId], references: [id])
56   playerId String @db.Uuid
57   createdAt  DateTime   @default(now())
58   updatedAt  DateTime?   @updatedAt
59 }
60
61 enum MonsterType {
62   BEAST
63   FLYING
64   HUMANOID
65   GIANT
66   INSECT
67   UNDEAD
68 }
69
70 model Monster {
71   id String @id @default(uuid()) @db.Uuid
72   name String @unique
73   monsterType MonsterType[]
74   monsterBiomes MonsterBiome[]
75 }
76
77 model MonsterBiome {
78   monster Monster @relation(fields: [monsterId], references: [id])
79   monsterId String @db.Uuid
80   biome Biome
81   weight Decimal
82   time Json
83   @@id([monsterId, biome])
84 }
85
86 model Fight {
87   id String @id @default(uuid()) @db.Uuid
88   playerId String? @db.Uuid
89   monsterId String @db.Uuid
90   name String
91   type MonsterType[]
92   level Int
93   currency Int
94   pow         Int
95   zest        Int
96   woosh       Int
97   luck        Int
98   aha         Int
99   wow         Int
100   hp          Int
101   exp          Int
102 }