-
Notifications
You must be signed in to change notification settings - Fork 0
/
database.sql
407 lines (362 loc) · 11.6 KB
/
database.sql
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
CREATE
EXTENSION IF NOT EXISTS "uuid-ossp";
create table albums
(
release smallint,
created_at timestamp(6),
updated_at timestamp(6),
version bigint,
id uuid not null,
created_by varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
title varchar(255),
updated_by varchar(255),
image text,
primary key (id)
);
create table artists
(
created_at timestamp(6),
updated_at timestamp(6),
version bigint,
id uuid not null,
created_by varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
facebook varchar(255),
instagram varchar(255),
name varchar(255),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
twitter varchar(255),
updated_by varchar(255),
wikipedia varchar(255),
bio text,
primary key (id)
);
create table concerts
(
lat float(53),
lon float(53),
created_at timestamp(6),
event_at timestamp(6),
updated_at timestamp(6),
version bigint,
id uuid not null,
created_by varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
location varchar(255),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
updated_by varchar(255),
url varchar(255),
primary key (id)
);
create table contain_playlists
(
playlist_id uuid not null,
song_id uuid not null,
primary key (playlist_id, song_id)
);
create table episodes
(
duration integer,
created_at timestamp(6),
updated_at timestamp(6),
version bigint,
id uuid not null,
podcast_id uuid,
created_by varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
title varchar(255),
updated_by varchar(255),
description text,
primary key (id)
);
create table follow_artists
(
artist_id uuid not null,
user_id uuid not null,
primary key (artist_id, user_id)
);
create table follow_playlists
(
playlist_id uuid not null,
user_id uuid not null,
primary key (playlist_id, user_id)
);
create table has_artist_albums
(
album_id uuid not null,
artist_id uuid not null,
primary key (album_id, artist_id)
);
create table payments
(
amount numeric(38, 2),
created_at timestamp(6),
updated_at timestamp(6),
version bigint,
id uuid not null,
created_by varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
updated_by varchar(255),
primary key (id)
);
create table payments_credit_card
(
id uuid not null,
bank varchar(255),
masked_card varchar(255),
primary key (id)
);
create table payments_gopay
(
id uuid not null,
gopay_id varchar(255),
primary key (id)
);
create table performs
(
artist_id uuid not null,
concert_id uuid not null,
primary key (artist_id, concert_id)
);
create table playlist_categories
(
created_at timestamp(6),
updated_at timestamp(6),
version bigint,
id uuid not null,
created_by varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
name varchar(255),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
updated_by varchar(255),
icon text,
image text,
primary key (id)
);
create table playlists
(
created_at timestamp(6),
updated_at timestamp(6),
version bigint,
id uuid not null,
playlist_categories_id uuid,
user_id uuid,
created_by varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
name varchar(255),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
updated_by varchar(255),
description text,
image text,
primary key (id)
);
create table podcast_categories
(
created_at timestamp(6),
updated_at timestamp(6),
version bigint,
id uuid not null,
created_by varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
name varchar(255),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
updated_by varchar(255),
icon text,
image text,
primary key (id)
);
create table podcasts
(
created_at timestamp(6),
updated_at timestamp(6),
version bigint,
id uuid not null,
podcast_categories_id uuid,
user_id uuid,
created_by varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
name varchar(255),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
updated_by varchar(255),
about text,
image text,
primary key (id)
);
create table sings
(
artist_id uuid not null,
song_id uuid not null,
primary key (artist_id, song_id)
);
create table songs
(
duration integer,
created_at timestamp(6),
updated_at timestamp(6),
version bigint,
album_id uuid,
id uuid not null,
created_by varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
title varchar(255),
updated_by varchar(255),
primary key (id)
);
create table transactions
(
balance numeric(38, 2),
created_at timestamp(6),
updated_at timestamp(6),
version bigint,
id uuid not null,
created_by varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
updated_by varchar(255),
primary key (id)
);
create table transactions_credit
(
balance numeric(38, 2),
credit_amount numeric(38, 2),
created_at timestamp(6),
updated_at timestamp(6),
version bigint,
id uuid not null,
created_by varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
updated_by varchar(255),
primary key (id)
);
create table transactions_debit
(
balance numeric(38, 2),
debit_amount numeric(38, 2),
created_at timestamp(6),
updated_at timestamp(6),
version bigint,
id uuid not null,
created_by varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
updated_by varchar(255),
primary key (id)
);
create table users
(
birthday date not null,
created_at timestamp(6),
member_expired_date timestamp(6),
updated_at timestamp(6),
version bigint,
id uuid not null,
type varchar(31) not null,
created_by varchar(255),
email varchar(255),
environment varchar(255) not null check (environment in ('SIT', 'UAT', 'PROD')),
name varchar(255),
password varchar(255),
status_record varchar(255) not null check (status_record in ('ACTIVE', 'INACTIVE')),
updated_by varchar(255),
primary key (id)
);
create table users_like_songs
(
song_id uuid not null,
user_id uuid not null,
primary key (song_id, user_id)
);
alter table if exists contain_playlists
add constraint FKd8fgtbo77or6ojifmn4srw8e0
foreign key (song_id)
references songs;
alter table if exists contain_playlists
add constraint FK8uikg0q94udcs32go8thnuy9m
foreign key (playlist_id)
references playlists;
alter table if exists episodes
add constraint FKnetidsqw18chu709udfuyqdw5
foreign key (podcast_id)
references podcasts;
alter table if exists follow_artists
add constraint FKlxc39fcfjy0d2wl8ckb04pgqb
foreign key (artist_id)
references artists;
alter table if exists follow_artists
add constraint FKjmftbpmug42kqq88lobda6pec
foreign key (user_id)
references users;
alter table if exists follow_playlists
add constraint FK3xcx6rrqjcn2ddgg2frhx5k5g
foreign key (playlist_id)
references playlists;
alter table if exists follow_playlists
add constraint FKax09p2ysynuxab5t8i9w7m7iw
foreign key (user_id)
references users;
alter table if exists has_artist_albums
add constraint FKmx9dsq5kmhiomlf6enssf7dv9
foreign key (album_id)
references albums;
alter table if exists has_artist_albums
add constraint FKfqchbnmovbmdpn5536uotqqxb
foreign key (artist_id)
references artists;
alter table if exists payments_credit_card
add constraint FK6vl95as9avtffd4sdyr5ekdvs
foreign key (id)
references payments;
alter table if exists payments_gopay
add constraint FK31svl1pv6j6pw6plptmu9gujb
foreign key (id)
references payments;
alter table if exists performs
add constraint FK78amy86wqan1ojv41mbj5cvby
foreign key (concert_id)
references concerts;
alter table if exists performs
add constraint FK6xsy74mv9es5dgb55oc4a3qmr
foreign key (artist_id)
references artists;
alter table if exists playlists
add constraint FKr6m6q4tw94rvij398lxgcb4vl
foreign key (playlist_categories_id)
references playlist_categories;
alter table if exists playlists
add constraint FKtgjwvfg23v990xk7k0idmqbrj
foreign key (user_id)
references users;
alter table if exists podcasts
add constraint FK4c4visi8eb9ywpb2dw463guci
foreign key (podcast_categories_id)
references podcast_categories;
alter table if exists podcasts
add constraint FKrvfqucih76m0pao9dad3gfwdb
foreign key (user_id)
references users;
alter table if exists sings
add constraint FKhmd3rm8yajufj32gjsiucisgv
foreign key (song_id)
references songs;
alter table if exists sings
add constraint FKixcidffqdsqyve94plsethk57
foreign key (artist_id)
references artists;
alter table if exists songs
add constraint FKte4gkb2cqtk2erfa87oopj2cj
foreign key (album_id)
references albums;
alter table if exists users_like_songs
add constraint FK92p4k1ww8spqfcmsqs7pa71vb
foreign key (song_id)
references songs;
alter table if exists users_like_songs
add constraint FK90koxkohrmjgn4ukpvv0ix65k
foreign key (user_id)
references users;