-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschema.prisma
125 lines (94 loc) · 2.56 KB
/
schema.prisma
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
}
generator json {
provider = "prisma-json-types-generator"
}
datasource db {
provider = "postgres"
url = env("POSTGRES_PRISMA_URL")
directUrl = env("POSTGRES_URL_NON_POOLING")
}
model User {
id String @id
name String?
username String
picture String?
members Member[]
receipts Receipt[]
}
model Guild {
id String @id
name String
picture String?
readRoleId String? @map("read_role_id")
registerRoleId String? @map("register_role_id")
writeRoleId String? @map("write_role_id")
members Member[]
items Item[]
events Event[]
}
model Member {
user User @relation(fields: [userId], references: [id])
userId String @map("user_id")
guild Guild @relation(fields: [guildId], references: [id])
guildId String @map("guild_id")
read Boolean
register Boolean
write Boolean
admin Boolean
@@id([userId, guildId])
}
model Item {
id String @id
guild Guild @relation(fields: [guildId], references: [id])
guildId String @map("guild_id")
name String
picture String?
issuedAt DateTime @map("issued_at")
displays Display[]
}
model Event {
id String @id
guild Guild @relation(fields: [guildId], references: [id])
guildId String @map("guild_id")
name String
date DateTime
/// [Discounts]
discounts Json @default("[]")
displays Display[]
receipts Receipt[]
}
model Display {
event Event @relation(fields: [eventId], references: [id])
eventId String @map("event_id")
item Item @relation(fields: [itemId], references: [id])
itemId String @map("item_id")
price Int
internalPrice Int? @map("internal_price")
dedication Boolean @default(false)
records Record[]
@@id([eventId, itemId])
}
model Receipt {
id String @id
event Event @relation(fields: [eventId], references: [id])
eventId String @map("event_id")
user User @relation(fields: [userId], references: [id])
userId String @map("user_id")
total Int
records Record[]
}
model Record {
receipt Receipt @relation(fields: [receiptId], references: [id])
receiptId String @map("receipt_id")
display Display @relation(fields: [eventId, itemId], references: [eventId, itemId])
eventId String @map("event_id")
itemId String @map("item_id")
count Int
internal Boolean @default(false)
dedication Boolean @default(false)
@@id([receiptId, itemId])
}