-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathschema.prisma
100 lines (87 loc) · 3.55 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
// This file is automatically generated by Keystone, do not modify it manually.
// Modify your Keystone config when you want to change this.
datasource postgresql {
url = env("DATABASE_URL")
shadowDatabaseUrl = env("SHADOW_DATABASE_URL")
provider = "postgresql"
}
generator client {
provider = "prisma-client-js"
}
model Speaker {
id String @id @default(cuid())
speakerName String @unique @default("")
from_Video_speaker Video[] @relation("Video_speaker")
}
model Language {
id String @id @default(cuid())
languageCode String @unique @default("")
name String @unique @default("")
sourceCountryFlag String @default("")
from_Video_language Video[] @relation("Video_language")
}
model ChannelType {
id String @id @default(cuid())
channelTypeCode String @unique @default("")
from_Channel_channelType Channel[] @relation("Channel_channelType")
}
model Channel {
id String @id @default(cuid())
channelName String @unique @default("")
channelType ChannelType? @relation("Channel_channelType", fields: [channelTypeId], references: [id])
channelTypeId String? @map("channelType")
locationLat String @default("")
locationLong String @default("")
regionCode String @default("")
shortIdentifier String @unique @default("")
websiteUrl String @default("")
addressText String @default("")
videosInChannel Video[] @relation("Video_channel")
@@index([channelTypeId])
}
model User {
id String @id @default(uuid()) @postgresql.Uuid
userUuid String @unique @default("")
userEmail String @default("")
likedVideos Video[] @relation("User_likedVideos")
dislikedVideos Video[] @relation("User_dislikedVideos")
}
model VideoType {
id String @id @default(cuid())
videoTypeName String @unique @default("")
from_Video_videoType Video[] @relation("Video_videoType")
}
model Video {
id String @id @default(cuid())
title String @unique @default("")
description String @default("")
datePublished DateTime @postgresql.Date
channel Channel? @relation("Video_channel", fields: [channelId], references: [id])
channelId String? @map("channel")
speaker Speaker[] @relation("Video_speaker")
language Language? @relation("Video_language", fields: [languageId], references: [id])
languageId String? @map("language")
videoType VideoType? @relation("Video_videoType", fields: [videoTypeId], references: [id])
videoTypeId String? @map("videoType")
gcpStorageFileName String @default("")
gcpStorageBucketName String @default("")
bunnyStorageHlsUrl String @default("")
thumbnailUrl String @default("")
urlSlug String @default("")
from_User_likedVideos User[] @relation("User_likedVideos")
from_User_dislikedVideos User[] @relation("User_dislikedVideos")
@@index([channelId])
@@index([languageId])
@@index([videoTypeId])
}
model Admin {
id String @id @default(cuid())
name String @default("")
email String @unique @default("")
password String
type AdminTypeType @default(super_moderator)
}
enum AdminTypeType {
super_admin
super_moderator
}