1
+ CREATE TYPE "channeltype " AS ENUM (' TEXT' , ' AUDIO' , ' VIDEO' );
2
+ CREATE TYPE "memberrole " AS ENUM (' MODERATOR' , ' GUEST' , ' ADMIN' );
3
+
4
+ CREATE TABLE
5
+ public." Profile" (
6
+ " id" TEXT PRIMARY KEY DEFAULT gen_random_uuid(),
7
+ " userId" TEXT ,
8
+ " name" TEXT ,
9
+ " imgUrl" TEXT ,
10
+ " email" TEXT ,
11
+ " createdAt" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ,
12
+ " updatedAt" TIMESTAMP WITH TIME ZONE DEFAULT now()
13
+ );
14
+
15
+
16
+ CREATE TABLE
17
+ public." Server" (
18
+ " id" TEXT PRIMARY KEY DEFAULT gen_random_uuid(),
19
+ " name" TEXT ,
20
+ " imgUrl" TEXT ,
21
+ " inviteCode" TEXT ,
22
+ " profileId" TEXT ,
23
+ " createdAt" TIMESTAMP WITHOUT TIME ZONE default current_timestamp ,
24
+ " updatedAt" TIMESTAMP WITHOUT TIME ZONE default now(),
25
+ FOREIGN KEY (" profileId" ) REFERENCES public." Profile" (id)
26
+ );
27
+
28
+ CREATE TABLE
29
+ " Channel" (
30
+ " id" TEXT PRIMARY KEY DEFAULT gen_random_uuid(),
31
+ " name" text ,
32
+ " type" " channeltype" ,
33
+ " serverId" text ,
34
+ " profileId" text ,
35
+ " createdAt" TIMESTAMP WITHOUT TIME ZONE default current_timestamp ,
36
+ " updatedAt" TIMESTAMP WITHOUT TIME ZONE default now(),
37
+ FOREIGN KEY (" profileId" ) REFERENCES public." Profile" (id),
38
+ FOREIGN KEY (" serverId" ) REFERENCES public." Server" (id)
39
+ );
40
+
41
+ CREATE TABLE
42
+ " Member" (
43
+ " id" TEXT PRIMARY KEY DEFAULT gen_random_uuid(),
44
+ " role" " memberrole" ,
45
+ " serverId" text ,
46
+ " profileId" text ,
47
+ " createdAt" TIMESTAMP WITHOUT TIME ZONE default current_timestamp ,
48
+ " updatedAt" TIMESTAMP WITHOUT TIME ZONE default now(),
49
+ FOREIGN KEY (" profileId" ) REFERENCES public." Profile" (id),
50
+ FOREIGN KEY (" serverId" ) REFERENCES public." Server" (id)
51
+ );
52
+
53
+ CREATE TABLE
54
+ " Message" (
55
+ " id" TEXT PRIMARY KEY DEFAULT gen_random_uuid(),
56
+ " CONTENT" text ,
57
+ " fileUrl" TEXT ,
58
+ " memberId" TEXT ,
59
+ " channelId" TEXT ,
60
+ " deleted" BOOLEAN ,
61
+ " createdAt" TIMESTAMP WITHOUT TIME ZONE default current_timestamp ,
62
+ " updatedAt" TIMESTAMP WITHOUT TIME ZONE default now(),
63
+ FOREIGN KEY (" channelId" ) REFERENCES public." Channel" (id),
64
+ FOREIGN KEY (" memberId" ) REFERENCES public." Member" (id)
65
+ );
66
+
67
+ CREATE TABLE
68
+ " Conversation" (
69
+ " id" TEXT PRIMARY KEY DEFAULT gen_random_uuid(),
70
+ " memberOneId" TEXT ,
71
+ " memberTwoId" TEXT ,
72
+ " createdAt" TIMESTAMP WITHOUT TIME ZONE default current_timestamp ,
73
+ FOREIGN KEY (" memberTwoId" ) REFERENCES public." Member" (id),
74
+ FOREIGN KEY (" memberOneId" ) REFERENCES public." Member" (id)
75
+ );
76
+
77
+ CREATE TABLE
78
+ " DirectMessage" (
79
+ " id" TEXT PRIMARY KEY DEFAULT gen_random_uuid(),
80
+ " CONTENT" TEXT ,
81
+ " fileUrl" TEXT ,
82
+ " memberId" TEXT ,
83
+ " conversationId" TEXT ,
84
+ " deleted" BOOLEAN ,
85
+ " createdAt" TIMESTAMP WITHOUT TIME ZONE default current_timestamp ,
86
+ " updatedAt" TIMESTAMP WITHOUT TIME ZONE default now(),
87
+ FOREIGN KEY (" memberId" ) REFERENCES " Member" (id),
88
+ FOREIGN KEY (" conversationId" ) REFERENCES " Conversation" (id)
89
+ );
0 commit comments