forked from
rocksky.app/rocksky
A decentralized music tracking and discovery platform built on AT Protocol 馃幍
1CREATE TABLE "album_tracks" (
2 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
3 "album_id" text NOT NULL,
4 "track_id" text NOT NULL,
5 "xata_createdat" timestamp DEFAULT now() NOT NULL,
6 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
7 "xata_version" integer
8);
9--> statement-breakpoint
10CREATE TABLE "albums" (
11 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
12 "title" text NOT NULL,
13 "artist" text NOT NULL,
14 "release_date" text,
15 "year" integer,
16 "album_art" text,
17 "uri" text,
18 "artist_uri" text,
19 "apple_music_link" text,
20 "spotify_link" text,
21 "tidal_link" text,
22 "youtube_link" text,
23 "sha256" text NOT NULL,
24 "xata_createdat" timestamp DEFAULT now() NOT NULL,
25 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
26 "xata_version" integer,
27 CONSTRAINT "albums_uri_unique" UNIQUE("uri"),
28 CONSTRAINT "albums_apple_music_link_unique" UNIQUE("apple_music_link"),
29 CONSTRAINT "albums_spotify_link_unique" UNIQUE("spotify_link"),
30 CONSTRAINT "albums_tidal_link_unique" UNIQUE("tidal_link"),
31 CONSTRAINT "albums_youtube_link_unique" UNIQUE("youtube_link"),
32 CONSTRAINT "albums_sha256_unique" UNIQUE("sha256")
33);
34--> statement-breakpoint
35CREATE TABLE "api_keys" (
36 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
37 "name" text NOT NULL,
38 "api_key" text NOT NULL,
39 "shared_secret" text NOT NULL,
40 "description" text,
41 "enabled" boolean DEFAULT true NOT NULL,
42 "user_id" text NOT NULL,
43 "xata_createdat" timestamp DEFAULT now() NOT NULL,
44 "xata_updatedat" timestamp DEFAULT now() NOT NULL
45);
46--> statement-breakpoint
47CREATE TABLE "artist_albums" (
48 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
49 "artist_id" text NOT NULL,
50 "album_id" text NOT NULL,
51 "xata_createdat" timestamp DEFAULT now() NOT NULL,
52 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
53 "xata_version" integer
54);
55--> statement-breakpoint
56CREATE TABLE "artist_tracks" (
57 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
58 "artist_id" text NOT NULL,
59 "track_id" text NOT NULL,
60 "xata_createdat" timestamp DEFAULT now() NOT NULL,
61 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
62 "xata_version" integer
63);
64--> statement-breakpoint
65CREATE TABLE "artists" (
66 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
67 "name" text NOT NULL,
68 "biography" text,
69 "born" timestamp,
70 "born_in" text,
71 "died" timestamp,
72 "picture" text,
73 "sha256" text NOT NULL,
74 "uri" text,
75 "apple_music_link" text,
76 "spotify_link" text,
77 "tidal_link" text,
78 "youtube_link" text,
79 "genres" text[],
80 "xata_createdat" timestamp DEFAULT now() NOT NULL,
81 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
82 "xata_version" integer,
83 CONSTRAINT "artists_sha256_unique" UNIQUE("sha256"),
84 CONSTRAINT "artists_uri_unique" UNIQUE("uri")
85);
86--> statement-breakpoint
87CREATE TABLE "dropbox_accounts" (
88 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
89 "email" text NOT NULL,
90 "is_beta_user" boolean DEFAULT false NOT NULL,
91 "user_id" text NOT NULL,
92 "xata_version" text,
93 "xata_createdat" timestamp DEFAULT now() NOT NULL,
94 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
95 CONSTRAINT "dropbox_accounts_email_unique" UNIQUE("email")
96);
97--> statement-breakpoint
98CREATE TABLE "dropbox_directories" (
99 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
100 "name" text NOT NULL,
101 "path" text NOT NULL,
102 "parent_id" text,
103 "dropbox_id" text NOT NULL,
104 "file_id" text NOT NULL,
105 "xata_version" text,
106 "xata_createdat" timestamp DEFAULT now() NOT NULL,
107 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
108 CONSTRAINT "dropbox_directories_file_id_unique" UNIQUE("file_id")
109);
110--> statement-breakpoint
111CREATE TABLE "dropbox_paths" (
112 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
113 "path" text NOT NULL,
114 "name" text NOT NULL,
115 "dropbox_id" text NOT NULL,
116 "track_id" text NOT NULL,
117 "directory_id" text,
118 "file_id" text NOT NULL,
119 "xata_version" text,
120 "xata_createdat" timestamp DEFAULT now() NOT NULL,
121 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
122 CONSTRAINT "dropbox_paths_file_id_unique" UNIQUE("file_id")
123);
124--> statement-breakpoint
125CREATE TABLE "dropbox_tokens" (
126 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
127 "refresh_token" text NOT NULL,
128 "xata_createdat" timestamp DEFAULT now() NOT NULL,
129 "xata_updatedat" timestamp DEFAULT now() NOT NULL
130);
131--> statement-breakpoint
132CREATE TABLE "dropbox" (
133 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
134 "user_id" text NOT NULL,
135 "dropbox_token_id" text NOT NULL,
136 "xata_version" text,
137 "xata_createdat" timestamp DEFAULT now() NOT NULL,
138 "xata_updatedat" timestamp DEFAULT now() NOT NULL
139);
140--> statement-breakpoint
141CREATE TABLE "google_drive_accounts" (
142 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
143 "email" text NOT NULL,
144 "is_beta_user" boolean DEFAULT false NOT NULL,
145 "user_id" text NOT NULL,
146 "xata_version" text,
147 "xata_createdat" timestamp DEFAULT now() NOT NULL,
148 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
149 CONSTRAINT "google_drive_accounts_email_unique" UNIQUE("email")
150);
151--> statement-breakpoint
152CREATE TABLE "google_drive_directories" (
153 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
154 "name" text NOT NULL,
155 "path" text NOT NULL,
156 "parent_id" text,
157 "google_drive_id" text NOT NULL,
158 "file_id" text NOT NULL,
159 "xata_version" text,
160 "xata_createdat" timestamp DEFAULT now() NOT NULL,
161 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
162 CONSTRAINT "google_drive_directories_file_id_unique" UNIQUE("file_id")
163);
164--> statement-breakpoint
165CREATE TABLE "google_drive_paths" (
166 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
167 "google_drive_id" text NOT NULL,
168 "track_id" text NOT NULL,
169 "name" text NOT NULL,
170 "directory_id" text,
171 "file_id" text NOT NULL,
172 "xata_version" text,
173 "xata_createdat" timestamp DEFAULT now() NOT NULL,
174 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
175 CONSTRAINT "google_drive_paths_file_id_unique" UNIQUE("file_id")
176);
177--> statement-breakpoint
178CREATE TABLE "google_drive_tokens" (
179 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
180 "refresh_token" text NOT NULL,
181 "xata_createdat" timestamp DEFAULT now() NOT NULL,
182 "xata_updatedat" timestamp DEFAULT now() NOT NULL
183);
184--> statement-breakpoint
185CREATE TABLE "google_drive" (
186 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
187 "google_drive_token_id" text NOT NULL,
188 "user_id" text NOT NULL,
189 "xata_version" text,
190 "xata_createdat" timestamp DEFAULT now() NOT NULL,
191 "xata_updatedat" timestamp DEFAULT now() NOT NULL
192);
193--> statement-breakpoint
194CREATE TABLE "loved_tracks" (
195 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
196 "user_id" text NOT NULL,
197 "track_id" text NOT NULL,
198 "uri" text,
199 "xata_createdat" timestamp DEFAULT now() NOT NULL,
200 CONSTRAINT "loved_tracks_uri_unique" UNIQUE("uri")
201);
202--> statement-breakpoint
203CREATE TABLE "playlist_tracks" (
204 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
205 "playlist_id" text NOT NULL,
206 "track_id" text NOT NULL,
207 "xata_createdat" timestamp DEFAULT now() NOT NULL
208);
209--> statement-breakpoint
210CREATE TABLE "playlists" (
211 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
212 "name" text NOT NULL,
213 "picture" text,
214 "description" text,
215 "uri" text,
216 "spotify_link" text,
217 "tidal_link" text,
218 "apple_music_link" text,
219 "created_by" text NOT NULL,
220 "xata_createdat" timestamp DEFAULT now() NOT NULL,
221 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
222 CONSTRAINT "playlists_uri_unique" UNIQUE("uri")
223);
224--> statement-breakpoint
225CREATE TABLE "profile_shouts" (
226 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
227 "user_id" text NOT NULL,
228 "shout_id" text NOT NULL,
229 "xata_createdat" timestamp DEFAULT now() NOT NULL
230);
231--> statement-breakpoint
232CREATE TABLE "queue_tracks" (
233 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
234 "user_id" text NOT NULL,
235 "track_id" text NOT NULL,
236 "position" integer NOT NULL,
237 "file_uri" text NOT NULL,
238 "xata_version" integer DEFAULT 0 NOT NULL,
239 "xata_createdat" timestamp DEFAULT now() NOT NULL,
240 "xata_updatedat" timestamp DEFAULT now() NOT NULL
241);
242--> statement-breakpoint
243CREATE TABLE "scrobbles" (
244 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
245 "user_id" text,
246 "track_id" text,
247 "album_id" text,
248 "artist_id" text,
249 "uri" text,
250 "xata_createdat" timestamp DEFAULT now() NOT NULL,
251 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
252 "xata_version" integer,
253 "timestamp" timestamp DEFAULT now() NOT NULL,
254 CONSTRAINT "scrobbles_uri_unique" UNIQUE("uri")
255);
256--> statement-breakpoint
257CREATE TABLE "shout_likes" (
258 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
259 "user_id" text NOT NULL,
260 "shout_id" text NOT NULL,
261 "xata_createdat" timestamp DEFAULT now() NOT NULL,
262 "uri" text NOT NULL,
263 CONSTRAINT "shout_likes_uri_unique" UNIQUE("uri")
264);
265--> statement-breakpoint
266CREATE TABLE "shout_reports" (
267 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
268 "user_id" text NOT NULL,
269 "shout_id" text NOT NULL,
270 "xata_createdat" timestamp DEFAULT now() NOT NULL
271);
272--> statement-breakpoint
273CREATE TABLE "shouts" (
274 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
275 "content" text NOT NULL,
276 "track_id" text,
277 "artist_id" text,
278 "album_id" text,
279 "scrobble_id" text,
280 "uri" text NOT NULL,
281 "author_id" text NOT NULL,
282 "parent_id" text,
283 "xata_createdat" timestamp DEFAULT now() NOT NULL,
284 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
285 CONSTRAINT "shouts_uri_unique" UNIQUE("uri")
286);
287--> statement-breakpoint
288CREATE TABLE "spotify_accounts" (
289 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
290 "xata_version" integer,
291 "email" text NOT NULL,
292 "user_id" text NOT NULL,
293 "is_beta_user" boolean DEFAULT false NOT NULL,
294 "xata_createdat" timestamp DEFAULT now() NOT NULL,
295 "xata_updatedat" timestamp DEFAULT now() NOT NULL
296);
297--> statement-breakpoint
298CREATE TABLE "spotify_tokens" (
299 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
300 "xata_version" integer,
301 "access_token" text NOT NULL,
302 "refresh_token" text NOT NULL,
303 "user_id" text NOT NULL,
304 "xata_createdat" timestamp DEFAULT now() NOT NULL,
305 "xata_updatedat" timestamp DEFAULT now() NOT NULL
306);
307--> statement-breakpoint
308CREATE TABLE "tracks" (
309 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
310 "title" text NOT NULL,
311 "artist" text NOT NULL,
312 "album_artist" text NOT NULL,
313 "album_art" text,
314 "album" text NOT NULL,
315 "track_number" integer,
316 "duration" integer NOT NULL,
317 "mb_id" text,
318 "youtube_link" text,
319 "spotify_link" text,
320 "apple_music_link" text,
321 "tidal_link" text,
322 "sha256" text NOT NULL,
323 "disc_number" integer,
324 "lyrics" text,
325 "composer" text,
326 "genre" text,
327 "label" text,
328 "copyright_message" text,
329 "uri" text,
330 "album_uri" text,
331 "artist_uri" text,
332 "xata_createdat" timestamp DEFAULT now() NOT NULL,
333 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
334 "xata_version" integer,
335 CONSTRAINT "tracks_mb_id_unique" UNIQUE("mb_id"),
336 CONSTRAINT "tracks_youtube_link_unique" UNIQUE("youtube_link"),
337 CONSTRAINT "tracks_spotify_link_unique" UNIQUE("spotify_link"),
338 CONSTRAINT "tracks_apple_music_link_unique" UNIQUE("apple_music_link"),
339 CONSTRAINT "tracks_tidal_link_unique" UNIQUE("tidal_link"),
340 CONSTRAINT "tracks_sha256_unique" UNIQUE("sha256"),
341 CONSTRAINT "tracks_uri_unique" UNIQUE("uri")
342);
343--> statement-breakpoint
344CREATE TABLE "user_albums" (
345 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
346 "user_id" text NOT NULL,
347 "album_id" text NOT NULL,
348 "xata_createdat" timestamp DEFAULT now() NOT NULL,
349 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
350 "xata_version" integer,
351 "scrobbles" integer,
352 "uri" text NOT NULL,
353 CONSTRAINT "user_albums_uri_unique" UNIQUE("uri")
354);
355--> statement-breakpoint
356CREATE TABLE "user_artists" (
357 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
358 "user_id" text NOT NULL,
359 "artist_id" text NOT NULL,
360 "xata_createdat" timestamp DEFAULT now() NOT NULL,
361 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
362 "xata_version" integer,
363 "scrobbles" integer,
364 "uri" text NOT NULL,
365 CONSTRAINT "user_artists_uri_unique" UNIQUE("uri")
366);
367--> statement-breakpoint
368CREATE TABLE "user_playlists" (
369 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
370 "user_id" text NOT NULL,
371 "playlist_id" text NOT NULL,
372 "xata_createdat" timestamp DEFAULT now() NOT NULL,
373 "uri" text NOT NULL,
374 CONSTRAINT "user_playlists_uri_unique" UNIQUE("uri")
375);
376--> statement-breakpoint
377CREATE TABLE "user_tracks" (
378 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
379 "user_id" text NOT NULL,
380 "track_id" text NOT NULL,
381 "xata_createdat" timestamp DEFAULT now() NOT NULL,
382 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
383 "xata_version" integer,
384 "uri" text NOT NULL,
385 "scrobbles" integer,
386 CONSTRAINT "user_tracks_uri_unique" UNIQUE("uri")
387);
388--> statement-breakpoint
389CREATE TABLE "users" (
390 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
391 "did" text NOT NULL,
392 "display_name" text,
393 "handle" text NOT NULL,
394 "avatar" text NOT NULL,
395 "xata_createdat" timestamp DEFAULT now() NOT NULL,
396 "xata_updatedat" timestamp DEFAULT now() NOT NULL,
397 "xata_version" integer,
398 CONSTRAINT "users_did_unique" UNIQUE("did"),
399 CONSTRAINT "users_handle_unique" UNIQUE("handle")
400);
401--> statement-breakpoint
402CREATE TABLE "webscrobblers" (
403 "xata_id" text PRIMARY KEY DEFAULT xata_id(),
404 "name" text NOT NULL,
405 "uuid" text NOT NULL,
406 "description" text,
407 "enabled" boolean DEFAULT true NOT NULL,
408 "user_id" text NOT NULL,
409 "xata_createdat" timestamp DEFAULT now() NOT NULL,
410 "xata_updatedat" timestamp DEFAULT now() NOT NULL
411);
412--> statement-breakpoint
413ALTER TABLE "album_tracks" ADD CONSTRAINT "album_tracks_album_id_albums_xata_id_fk" FOREIGN KEY ("album_id") REFERENCES "public"."albums"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
414ALTER TABLE "album_tracks" ADD CONSTRAINT "album_tracks_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
415ALTER TABLE "api_keys" ADD CONSTRAINT "api_keys_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
416ALTER TABLE "artist_albums" ADD CONSTRAINT "artist_albums_artist_id_artists_xata_id_fk" FOREIGN KEY ("artist_id") REFERENCES "public"."artists"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
417ALTER TABLE "artist_albums" ADD CONSTRAINT "artist_albums_album_id_albums_xata_id_fk" FOREIGN KEY ("album_id") REFERENCES "public"."albums"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
418ALTER TABLE "artist_tracks" ADD CONSTRAINT "artist_tracks_artist_id_artists_xata_id_fk" FOREIGN KEY ("artist_id") REFERENCES "public"."artists"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
419ALTER TABLE "artist_tracks" ADD CONSTRAINT "artist_tracks_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
420ALTER TABLE "dropbox_accounts" ADD CONSTRAINT "dropbox_accounts_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
421ALTER TABLE "dropbox_directories" ADD CONSTRAINT "dropbox_directories_parent_id_dropbox_directories_xata_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."dropbox_directories"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
422ALTER TABLE "dropbox_paths" ADD CONSTRAINT "dropbox_paths_directory_id_dropbox_directories_xata_id_fk" FOREIGN KEY ("directory_id") REFERENCES "public"."dropbox_directories"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
423ALTER TABLE "dropbox" ADD CONSTRAINT "dropbox_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
424ALTER TABLE "dropbox" ADD CONSTRAINT "dropbox_dropbox_token_id_dropbox_tokens_xata_id_fk" FOREIGN KEY ("dropbox_token_id") REFERENCES "public"."dropbox_tokens"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
425ALTER TABLE "google_drive_accounts" ADD CONSTRAINT "google_drive_accounts_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
426ALTER TABLE "google_drive_directories" ADD CONSTRAINT "google_drive_directories_parent_id_google_drive_directories_xata_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."google_drive_directories"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
427ALTER TABLE "google_drive_paths" ADD CONSTRAINT "google_drive_paths_directory_id_google_drive_directories_xata_id_fk" FOREIGN KEY ("directory_id") REFERENCES "public"."google_drive_directories"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
428ALTER TABLE "google_drive" ADD CONSTRAINT "google_drive_google_drive_token_id_google_drive_tokens_xata_id_fk" FOREIGN KEY ("google_drive_token_id") REFERENCES "public"."google_drive_tokens"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
429ALTER TABLE "google_drive" ADD CONSTRAINT "google_drive_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
430ALTER TABLE "loved_tracks" ADD CONSTRAINT "loved_tracks_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
431ALTER TABLE "loved_tracks" ADD CONSTRAINT "loved_tracks_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
432ALTER TABLE "playlist_tracks" ADD CONSTRAINT "playlist_tracks_playlist_id_playlists_xata_id_fk" FOREIGN KEY ("playlist_id") REFERENCES "public"."playlists"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
433ALTER TABLE "playlist_tracks" ADD CONSTRAINT "playlist_tracks_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
434ALTER TABLE "playlists" ADD CONSTRAINT "playlists_created_by_users_xata_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
435ALTER TABLE "profile_shouts" ADD CONSTRAINT "profile_shouts_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
436ALTER TABLE "profile_shouts" ADD CONSTRAINT "profile_shouts_shout_id_shouts_xata_id_fk" FOREIGN KEY ("shout_id") REFERENCES "public"."shouts"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
437ALTER TABLE "queue_tracks" ADD CONSTRAINT "queue_tracks_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
438ALTER TABLE "queue_tracks" ADD CONSTRAINT "queue_tracks_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
439ALTER TABLE "scrobbles" ADD CONSTRAINT "scrobbles_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
440ALTER TABLE "scrobbles" ADD CONSTRAINT "scrobbles_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
441ALTER TABLE "scrobbles" ADD CONSTRAINT "scrobbles_album_id_albums_xata_id_fk" FOREIGN KEY ("album_id") REFERENCES "public"."albums"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
442ALTER TABLE "scrobbles" ADD CONSTRAINT "scrobbles_artist_id_artists_xata_id_fk" FOREIGN KEY ("artist_id") REFERENCES "public"."artists"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
443ALTER TABLE "shout_likes" ADD CONSTRAINT "shout_likes_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
444ALTER TABLE "shout_likes" ADD CONSTRAINT "shout_likes_shout_id_shouts_xata_id_fk" FOREIGN KEY ("shout_id") REFERENCES "public"."shouts"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
445ALTER TABLE "shout_reports" ADD CONSTRAINT "shout_reports_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
446ALTER TABLE "shout_reports" ADD CONSTRAINT "shout_reports_shout_id_shouts_xata_id_fk" FOREIGN KEY ("shout_id") REFERENCES "public"."shouts"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
447ALTER TABLE "shouts" ADD CONSTRAINT "shouts_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
448ALTER TABLE "shouts" ADD CONSTRAINT "shouts_artist_id_users_xata_id_fk" FOREIGN KEY ("artist_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
449ALTER TABLE "shouts" ADD CONSTRAINT "shouts_album_id_albums_xata_id_fk" FOREIGN KEY ("album_id") REFERENCES "public"."albums"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
450ALTER TABLE "shouts" ADD CONSTRAINT "shouts_scrobble_id_scrobbles_xata_id_fk" FOREIGN KEY ("scrobble_id") REFERENCES "public"."scrobbles"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
451ALTER TABLE "shouts" ADD CONSTRAINT "shouts_author_id_users_xata_id_fk" FOREIGN KEY ("author_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
452ALTER TABLE "shouts" ADD CONSTRAINT "shouts_parent_id_shouts_xata_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."shouts"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
453ALTER TABLE "spotify_accounts" ADD CONSTRAINT "spotify_accounts_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
454ALTER TABLE "spotify_tokens" ADD CONSTRAINT "spotify_tokens_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
455ALTER TABLE "user_albums" ADD CONSTRAINT "user_albums_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
456ALTER TABLE "user_albums" ADD CONSTRAINT "user_albums_album_id_albums_xata_id_fk" FOREIGN KEY ("album_id") REFERENCES "public"."albums"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
457ALTER TABLE "user_artists" ADD CONSTRAINT "user_artists_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
458ALTER TABLE "user_artists" ADD CONSTRAINT "user_artists_artist_id_artists_xata_id_fk" FOREIGN KEY ("artist_id") REFERENCES "public"."artists"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
459ALTER TABLE "user_playlists" ADD CONSTRAINT "user_playlists_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
460ALTER TABLE "user_playlists" ADD CONSTRAINT "user_playlists_playlist_id_tracks_xata_id_fk" FOREIGN KEY ("playlist_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
461ALTER TABLE "user_tracks" ADD CONSTRAINT "user_tracks_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
462ALTER TABLE "user_tracks" ADD CONSTRAINT "user_tracks_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
463ALTER TABLE "webscrobblers" ADD CONSTRAINT "webscrobblers_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;