A decentralized music tracking and discovery platform built on AT Protocol 🎵

feat: add avatar field to feeds schema and implement Feed struct in Xata

- Added an optional `avatar` field to the `feeds` table schema.
- Created a new `Feed` struct in the Xata module to represent feed data, including the new `avatar` field.
- Updated the journal with a new entry for "0005_parched_thor_girl".

+3296
+1
apps/api/drizzle/0005_parched_thor_girl.sql
··· 1 + ALTER TABLE "feeds" ADD COLUMN "avatar" text;
+3271
apps/api/drizzle/meta/0005_snapshot.json
··· 1 + { 2 + "id": "cb5fb4bd-9dcd-4dcb-a88f-0b8a9deffe67", 3 + "prevId": "944a6989-c0aa-432f-9b42-4bf221d0c597", 4 + "version": "7", 5 + "dialect": "postgresql", 6 + "tables": { 7 + "public.album_tracks": { 8 + "name": "album_tracks", 9 + "schema": "", 10 + "columns": { 11 + "xata_id": { 12 + "name": "xata_id", 13 + "type": "text", 14 + "primaryKey": true, 15 + "notNull": true, 16 + "default": "xata_id()" 17 + }, 18 + "album_id": { 19 + "name": "album_id", 20 + "type": "text", 21 + "primaryKey": false, 22 + "notNull": true 23 + }, 24 + "track_id": { 25 + "name": "track_id", 26 + "type": "text", 27 + "primaryKey": false, 28 + "notNull": true 29 + }, 30 + "xata_createdat": { 31 + "name": "xata_createdat", 32 + "type": "timestamp", 33 + "primaryKey": false, 34 + "notNull": true, 35 + "default": "now()" 36 + }, 37 + "xata_updatedat": { 38 + "name": "xata_updatedat", 39 + "type": "timestamp", 40 + "primaryKey": false, 41 + "notNull": true, 42 + "default": "now()" 43 + }, 44 + "xata_version": { 45 + "name": "xata_version", 46 + "type": "integer", 47 + "primaryKey": false, 48 + "notNull": false 49 + } 50 + }, 51 + "indexes": {}, 52 + "foreignKeys": { 53 + "album_tracks_album_id_albums_xata_id_fk": { 54 + "name": "album_tracks_album_id_albums_xata_id_fk", 55 + "tableFrom": "album_tracks", 56 + "tableTo": "albums", 57 + "columnsFrom": [ 58 + "album_id" 59 + ], 60 + "columnsTo": [ 61 + "xata_id" 62 + ], 63 + "onDelete": "no action", 64 + "onUpdate": "no action" 65 + }, 66 + "album_tracks_track_id_tracks_xata_id_fk": { 67 + "name": "album_tracks_track_id_tracks_xata_id_fk", 68 + "tableFrom": "album_tracks", 69 + "tableTo": "tracks", 70 + "columnsFrom": [ 71 + "track_id" 72 + ], 73 + "columnsTo": [ 74 + "xata_id" 75 + ], 76 + "onDelete": "no action", 77 + "onUpdate": "no action" 78 + } 79 + }, 80 + "compositePrimaryKeys": {}, 81 + "uniqueConstraints": {}, 82 + "policies": {}, 83 + "checkConstraints": {}, 84 + "isRLSEnabled": false 85 + }, 86 + "public.albums": { 87 + "name": "albums", 88 + "schema": "", 89 + "columns": { 90 + "xata_id": { 91 + "name": "xata_id", 92 + "type": "text", 93 + "primaryKey": true, 94 + "notNull": true, 95 + "default": "xata_id()" 96 + }, 97 + "title": { 98 + "name": "title", 99 + "type": "text", 100 + "primaryKey": false, 101 + "notNull": true 102 + }, 103 + "artist": { 104 + "name": "artist", 105 + "type": "text", 106 + "primaryKey": false, 107 + "notNull": true 108 + }, 109 + "release_date": { 110 + "name": "release_date", 111 + "type": "text", 112 + "primaryKey": false, 113 + "notNull": false 114 + }, 115 + "year": { 116 + "name": "year", 117 + "type": "integer", 118 + "primaryKey": false, 119 + "notNull": false 120 + }, 121 + "album_art": { 122 + "name": "album_art", 123 + "type": "text", 124 + "primaryKey": false, 125 + "notNull": false 126 + }, 127 + "uri": { 128 + "name": "uri", 129 + "type": "text", 130 + "primaryKey": false, 131 + "notNull": false 132 + }, 133 + "artist_uri": { 134 + "name": "artist_uri", 135 + "type": "text", 136 + "primaryKey": false, 137 + "notNull": false 138 + }, 139 + "apple_music_link": { 140 + "name": "apple_music_link", 141 + "type": "text", 142 + "primaryKey": false, 143 + "notNull": false 144 + }, 145 + "spotify_link": { 146 + "name": "spotify_link", 147 + "type": "text", 148 + "primaryKey": false, 149 + "notNull": false 150 + }, 151 + "tidal_link": { 152 + "name": "tidal_link", 153 + "type": "text", 154 + "primaryKey": false, 155 + "notNull": false 156 + }, 157 + "youtube_link": { 158 + "name": "youtube_link", 159 + "type": "text", 160 + "primaryKey": false, 161 + "notNull": false 162 + }, 163 + "sha256": { 164 + "name": "sha256", 165 + "type": "text", 166 + "primaryKey": false, 167 + "notNull": true 168 + }, 169 + "xata_createdat": { 170 + "name": "xata_createdat", 171 + "type": "timestamp", 172 + "primaryKey": false, 173 + "notNull": true, 174 + "default": "now()" 175 + }, 176 + "xata_updatedat": { 177 + "name": "xata_updatedat", 178 + "type": "timestamp", 179 + "primaryKey": false, 180 + "notNull": true, 181 + "default": "now()" 182 + }, 183 + "xata_version": { 184 + "name": "xata_version", 185 + "type": "integer", 186 + "primaryKey": false, 187 + "notNull": false 188 + } 189 + }, 190 + "indexes": {}, 191 + "foreignKeys": {}, 192 + "compositePrimaryKeys": {}, 193 + "uniqueConstraints": { 194 + "albums_uri_unique": { 195 + "name": "albums_uri_unique", 196 + "nullsNotDistinct": false, 197 + "columns": [ 198 + "uri" 199 + ] 200 + }, 201 + "albums_apple_music_link_unique": { 202 + "name": "albums_apple_music_link_unique", 203 + "nullsNotDistinct": false, 204 + "columns": [ 205 + "apple_music_link" 206 + ] 207 + }, 208 + "albums_spotify_link_unique": { 209 + "name": "albums_spotify_link_unique", 210 + "nullsNotDistinct": false, 211 + "columns": [ 212 + "spotify_link" 213 + ] 214 + }, 215 + "albums_tidal_link_unique": { 216 + "name": "albums_tidal_link_unique", 217 + "nullsNotDistinct": false, 218 + "columns": [ 219 + "tidal_link" 220 + ] 221 + }, 222 + "albums_youtube_link_unique": { 223 + "name": "albums_youtube_link_unique", 224 + "nullsNotDistinct": false, 225 + "columns": [ 226 + "youtube_link" 227 + ] 228 + }, 229 + "albums_sha256_unique": { 230 + "name": "albums_sha256_unique", 231 + "nullsNotDistinct": false, 232 + "columns": [ 233 + "sha256" 234 + ] 235 + } 236 + }, 237 + "policies": {}, 238 + "checkConstraints": {}, 239 + "isRLSEnabled": false 240 + }, 241 + "public.api_keys": { 242 + "name": "api_keys", 243 + "schema": "", 244 + "columns": { 245 + "xata_id": { 246 + "name": "xata_id", 247 + "type": "text", 248 + "primaryKey": true, 249 + "notNull": true, 250 + "default": "xata_id()" 251 + }, 252 + "name": { 253 + "name": "name", 254 + "type": "text", 255 + "primaryKey": false, 256 + "notNull": true 257 + }, 258 + "api_key": { 259 + "name": "api_key", 260 + "type": "text", 261 + "primaryKey": false, 262 + "notNull": true 263 + }, 264 + "shared_secret": { 265 + "name": "shared_secret", 266 + "type": "text", 267 + "primaryKey": false, 268 + "notNull": true 269 + }, 270 + "description": { 271 + "name": "description", 272 + "type": "text", 273 + "primaryKey": false, 274 + "notNull": false 275 + }, 276 + "enabled": { 277 + "name": "enabled", 278 + "type": "boolean", 279 + "primaryKey": false, 280 + "notNull": true, 281 + "default": true 282 + }, 283 + "user_id": { 284 + "name": "user_id", 285 + "type": "text", 286 + "primaryKey": false, 287 + "notNull": true 288 + }, 289 + "xata_createdat": { 290 + "name": "xata_createdat", 291 + "type": "timestamp", 292 + "primaryKey": false, 293 + "notNull": true, 294 + "default": "now()" 295 + }, 296 + "xata_updatedat": { 297 + "name": "xata_updatedat", 298 + "type": "timestamp", 299 + "primaryKey": false, 300 + "notNull": true, 301 + "default": "now()" 302 + } 303 + }, 304 + "indexes": {}, 305 + "foreignKeys": { 306 + "api_keys_user_id_users_xata_id_fk": { 307 + "name": "api_keys_user_id_users_xata_id_fk", 308 + "tableFrom": "api_keys", 309 + "tableTo": "users", 310 + "columnsFrom": [ 311 + "user_id" 312 + ], 313 + "columnsTo": [ 314 + "xata_id" 315 + ], 316 + "onDelete": "no action", 317 + "onUpdate": "no action" 318 + } 319 + }, 320 + "compositePrimaryKeys": {}, 321 + "uniqueConstraints": {}, 322 + "policies": {}, 323 + "checkConstraints": {}, 324 + "isRLSEnabled": false 325 + }, 326 + "public.artist_albums": { 327 + "name": "artist_albums", 328 + "schema": "", 329 + "columns": { 330 + "xata_id": { 331 + "name": "xata_id", 332 + "type": "text", 333 + "primaryKey": true, 334 + "notNull": true, 335 + "default": "xata_id()" 336 + }, 337 + "artist_id": { 338 + "name": "artist_id", 339 + "type": "text", 340 + "primaryKey": false, 341 + "notNull": true 342 + }, 343 + "album_id": { 344 + "name": "album_id", 345 + "type": "text", 346 + "primaryKey": false, 347 + "notNull": true 348 + }, 349 + "xata_createdat": { 350 + "name": "xata_createdat", 351 + "type": "timestamp", 352 + "primaryKey": false, 353 + "notNull": true, 354 + "default": "now()" 355 + }, 356 + "xata_updatedat": { 357 + "name": "xata_updatedat", 358 + "type": "timestamp", 359 + "primaryKey": false, 360 + "notNull": true, 361 + "default": "now()" 362 + }, 363 + "xata_version": { 364 + "name": "xata_version", 365 + "type": "integer", 366 + "primaryKey": false, 367 + "notNull": false 368 + } 369 + }, 370 + "indexes": {}, 371 + "foreignKeys": { 372 + "artist_albums_artist_id_artists_xata_id_fk": { 373 + "name": "artist_albums_artist_id_artists_xata_id_fk", 374 + "tableFrom": "artist_albums", 375 + "tableTo": "artists", 376 + "columnsFrom": [ 377 + "artist_id" 378 + ], 379 + "columnsTo": [ 380 + "xata_id" 381 + ], 382 + "onDelete": "no action", 383 + "onUpdate": "no action" 384 + }, 385 + "artist_albums_album_id_albums_xata_id_fk": { 386 + "name": "artist_albums_album_id_albums_xata_id_fk", 387 + "tableFrom": "artist_albums", 388 + "tableTo": "albums", 389 + "columnsFrom": [ 390 + "album_id" 391 + ], 392 + "columnsTo": [ 393 + "xata_id" 394 + ], 395 + "onDelete": "no action", 396 + "onUpdate": "no action" 397 + } 398 + }, 399 + "compositePrimaryKeys": {}, 400 + "uniqueConstraints": {}, 401 + "policies": {}, 402 + "checkConstraints": {}, 403 + "isRLSEnabled": false 404 + }, 405 + "public.artist_tracks": { 406 + "name": "artist_tracks", 407 + "schema": "", 408 + "columns": { 409 + "xata_id": { 410 + "name": "xata_id", 411 + "type": "text", 412 + "primaryKey": true, 413 + "notNull": true, 414 + "default": "xata_id()" 415 + }, 416 + "artist_id": { 417 + "name": "artist_id", 418 + "type": "text", 419 + "primaryKey": false, 420 + "notNull": true 421 + }, 422 + "track_id": { 423 + "name": "track_id", 424 + "type": "text", 425 + "primaryKey": false, 426 + "notNull": true 427 + }, 428 + "xata_createdat": { 429 + "name": "xata_createdat", 430 + "type": "timestamp", 431 + "primaryKey": false, 432 + "notNull": true, 433 + "default": "now()" 434 + }, 435 + "xata_updatedat": { 436 + "name": "xata_updatedat", 437 + "type": "timestamp", 438 + "primaryKey": false, 439 + "notNull": true, 440 + "default": "now()" 441 + }, 442 + "xata_version": { 443 + "name": "xata_version", 444 + "type": "integer", 445 + "primaryKey": false, 446 + "notNull": false 447 + } 448 + }, 449 + "indexes": {}, 450 + "foreignKeys": { 451 + "artist_tracks_artist_id_artists_xata_id_fk": { 452 + "name": "artist_tracks_artist_id_artists_xata_id_fk", 453 + "tableFrom": "artist_tracks", 454 + "tableTo": "artists", 455 + "columnsFrom": [ 456 + "artist_id" 457 + ], 458 + "columnsTo": [ 459 + "xata_id" 460 + ], 461 + "onDelete": "no action", 462 + "onUpdate": "no action" 463 + }, 464 + "artist_tracks_track_id_tracks_xata_id_fk": { 465 + "name": "artist_tracks_track_id_tracks_xata_id_fk", 466 + "tableFrom": "artist_tracks", 467 + "tableTo": "tracks", 468 + "columnsFrom": [ 469 + "track_id" 470 + ], 471 + "columnsTo": [ 472 + "xata_id" 473 + ], 474 + "onDelete": "no action", 475 + "onUpdate": "no action" 476 + } 477 + }, 478 + "compositePrimaryKeys": {}, 479 + "uniqueConstraints": {}, 480 + "policies": {}, 481 + "checkConstraints": {}, 482 + "isRLSEnabled": false 483 + }, 484 + "public.artists": { 485 + "name": "artists", 486 + "schema": "", 487 + "columns": { 488 + "xata_id": { 489 + "name": "xata_id", 490 + "type": "text", 491 + "primaryKey": true, 492 + "notNull": true, 493 + "default": "xata_id()" 494 + }, 495 + "name": { 496 + "name": "name", 497 + "type": "text", 498 + "primaryKey": false, 499 + "notNull": true 500 + }, 501 + "biography": { 502 + "name": "biography", 503 + "type": "text", 504 + "primaryKey": false, 505 + "notNull": false 506 + }, 507 + "born": { 508 + "name": "born", 509 + "type": "timestamp", 510 + "primaryKey": false, 511 + "notNull": false 512 + }, 513 + "born_in": { 514 + "name": "born_in", 515 + "type": "text", 516 + "primaryKey": false, 517 + "notNull": false 518 + }, 519 + "died": { 520 + "name": "died", 521 + "type": "timestamp", 522 + "primaryKey": false, 523 + "notNull": false 524 + }, 525 + "picture": { 526 + "name": "picture", 527 + "type": "text", 528 + "primaryKey": false, 529 + "notNull": false 530 + }, 531 + "sha256": { 532 + "name": "sha256", 533 + "type": "text", 534 + "primaryKey": false, 535 + "notNull": true 536 + }, 537 + "uri": { 538 + "name": "uri", 539 + "type": "text", 540 + "primaryKey": false, 541 + "notNull": false 542 + }, 543 + "apple_music_link": { 544 + "name": "apple_music_link", 545 + "type": "text", 546 + "primaryKey": false, 547 + "notNull": false 548 + }, 549 + "spotify_link": { 550 + "name": "spotify_link", 551 + "type": "text", 552 + "primaryKey": false, 553 + "notNull": false 554 + }, 555 + "tidal_link": { 556 + "name": "tidal_link", 557 + "type": "text", 558 + "primaryKey": false, 559 + "notNull": false 560 + }, 561 + "youtube_link": { 562 + "name": "youtube_link", 563 + "type": "text", 564 + "primaryKey": false, 565 + "notNull": false 566 + }, 567 + "genres": { 568 + "name": "genres", 569 + "type": "text[]", 570 + "primaryKey": false, 571 + "notNull": false 572 + }, 573 + "xata_createdat": { 574 + "name": "xata_createdat", 575 + "type": "timestamp", 576 + "primaryKey": false, 577 + "notNull": true, 578 + "default": "now()" 579 + }, 580 + "xata_updatedat": { 581 + "name": "xata_updatedat", 582 + "type": "timestamp", 583 + "primaryKey": false, 584 + "notNull": true, 585 + "default": "now()" 586 + }, 587 + "xata_version": { 588 + "name": "xata_version", 589 + "type": "integer", 590 + "primaryKey": false, 591 + "notNull": false 592 + } 593 + }, 594 + "indexes": {}, 595 + "foreignKeys": {}, 596 + "compositePrimaryKeys": {}, 597 + "uniqueConstraints": { 598 + "artists_sha256_unique": { 599 + "name": "artists_sha256_unique", 600 + "nullsNotDistinct": false, 601 + "columns": [ 602 + "sha256" 603 + ] 604 + }, 605 + "artists_uri_unique": { 606 + "name": "artists_uri_unique", 607 + "nullsNotDistinct": false, 608 + "columns": [ 609 + "uri" 610 + ] 611 + } 612 + }, 613 + "policies": {}, 614 + "checkConstraints": {}, 615 + "isRLSEnabled": false 616 + }, 617 + "public.dropbox_accounts": { 618 + "name": "dropbox_accounts", 619 + "schema": "", 620 + "columns": { 621 + "xata_id": { 622 + "name": "xata_id", 623 + "type": "text", 624 + "primaryKey": true, 625 + "notNull": true, 626 + "default": "xata_id()" 627 + }, 628 + "email": { 629 + "name": "email", 630 + "type": "text", 631 + "primaryKey": false, 632 + "notNull": true 633 + }, 634 + "is_beta_user": { 635 + "name": "is_beta_user", 636 + "type": "boolean", 637 + "primaryKey": false, 638 + "notNull": true, 639 + "default": false 640 + }, 641 + "user_id": { 642 + "name": "user_id", 643 + "type": "text", 644 + "primaryKey": false, 645 + "notNull": true 646 + }, 647 + "xata_version": { 648 + "name": "xata_version", 649 + "type": "text", 650 + "primaryKey": false, 651 + "notNull": false 652 + }, 653 + "xata_createdat": { 654 + "name": "xata_createdat", 655 + "type": "timestamp", 656 + "primaryKey": false, 657 + "notNull": true, 658 + "default": "now()" 659 + }, 660 + "xata_updatedat": { 661 + "name": "xata_updatedat", 662 + "type": "timestamp", 663 + "primaryKey": false, 664 + "notNull": true, 665 + "default": "now()" 666 + } 667 + }, 668 + "indexes": {}, 669 + "foreignKeys": { 670 + "dropbox_accounts_user_id_users_xata_id_fk": { 671 + "name": "dropbox_accounts_user_id_users_xata_id_fk", 672 + "tableFrom": "dropbox_accounts", 673 + "tableTo": "users", 674 + "columnsFrom": [ 675 + "user_id" 676 + ], 677 + "columnsTo": [ 678 + "xata_id" 679 + ], 680 + "onDelete": "no action", 681 + "onUpdate": "no action" 682 + } 683 + }, 684 + "compositePrimaryKeys": {}, 685 + "uniqueConstraints": { 686 + "dropbox_accounts_email_unique": { 687 + "name": "dropbox_accounts_email_unique", 688 + "nullsNotDistinct": false, 689 + "columns": [ 690 + "email" 691 + ] 692 + } 693 + }, 694 + "policies": {}, 695 + "checkConstraints": {}, 696 + "isRLSEnabled": false 697 + }, 698 + "public.dropbox_directories": { 699 + "name": "dropbox_directories", 700 + "schema": "", 701 + "columns": { 702 + "xata_id": { 703 + "name": "xata_id", 704 + "type": "text", 705 + "primaryKey": true, 706 + "notNull": true, 707 + "default": "xata_id()" 708 + }, 709 + "name": { 710 + "name": "name", 711 + "type": "text", 712 + "primaryKey": false, 713 + "notNull": true 714 + }, 715 + "path": { 716 + "name": "path", 717 + "type": "text", 718 + "primaryKey": false, 719 + "notNull": true 720 + }, 721 + "parent_id": { 722 + "name": "parent_id", 723 + "type": "text", 724 + "primaryKey": false, 725 + "notNull": false 726 + }, 727 + "dropbox_id": { 728 + "name": "dropbox_id", 729 + "type": "text", 730 + "primaryKey": false, 731 + "notNull": true 732 + }, 733 + "file_id": { 734 + "name": "file_id", 735 + "type": "text", 736 + "primaryKey": false, 737 + "notNull": true 738 + }, 739 + "xata_version": { 740 + "name": "xata_version", 741 + "type": "text", 742 + "primaryKey": false, 743 + "notNull": false 744 + }, 745 + "xata_createdat": { 746 + "name": "xata_createdat", 747 + "type": "timestamp", 748 + "primaryKey": false, 749 + "notNull": true, 750 + "default": "now()" 751 + }, 752 + "xata_updatedat": { 753 + "name": "xata_updatedat", 754 + "type": "timestamp", 755 + "primaryKey": false, 756 + "notNull": true, 757 + "default": "now()" 758 + } 759 + }, 760 + "indexes": {}, 761 + "foreignKeys": { 762 + "dropbox_directories_parent_id_dropbox_directories_xata_id_fk": { 763 + "name": "dropbox_directories_parent_id_dropbox_directories_xata_id_fk", 764 + "tableFrom": "dropbox_directories", 765 + "tableTo": "dropbox_directories", 766 + "columnsFrom": [ 767 + "parent_id" 768 + ], 769 + "columnsTo": [ 770 + "xata_id" 771 + ], 772 + "onDelete": "no action", 773 + "onUpdate": "no action" 774 + } 775 + }, 776 + "compositePrimaryKeys": {}, 777 + "uniqueConstraints": { 778 + "dropbox_directories_file_id_unique": { 779 + "name": "dropbox_directories_file_id_unique", 780 + "nullsNotDistinct": false, 781 + "columns": [ 782 + "file_id" 783 + ] 784 + } 785 + }, 786 + "policies": {}, 787 + "checkConstraints": {}, 788 + "isRLSEnabled": false 789 + }, 790 + "public.dropbox_paths": { 791 + "name": "dropbox_paths", 792 + "schema": "", 793 + "columns": { 794 + "xata_id": { 795 + "name": "xata_id", 796 + "type": "text", 797 + "primaryKey": true, 798 + "notNull": true, 799 + "default": "xata_id()" 800 + }, 801 + "path": { 802 + "name": "path", 803 + "type": "text", 804 + "primaryKey": false, 805 + "notNull": true 806 + }, 807 + "name": { 808 + "name": "name", 809 + "type": "text", 810 + "primaryKey": false, 811 + "notNull": true 812 + }, 813 + "dropbox_id": { 814 + "name": "dropbox_id", 815 + "type": "text", 816 + "primaryKey": false, 817 + "notNull": true 818 + }, 819 + "track_id": { 820 + "name": "track_id", 821 + "type": "text", 822 + "primaryKey": false, 823 + "notNull": true 824 + }, 825 + "directory_id": { 826 + "name": "directory_id", 827 + "type": "text", 828 + "primaryKey": false, 829 + "notNull": false 830 + }, 831 + "file_id": { 832 + "name": "file_id", 833 + "type": "text", 834 + "primaryKey": false, 835 + "notNull": true 836 + }, 837 + "xata_version": { 838 + "name": "xata_version", 839 + "type": "text", 840 + "primaryKey": false, 841 + "notNull": false 842 + }, 843 + "xata_createdat": { 844 + "name": "xata_createdat", 845 + "type": "timestamp", 846 + "primaryKey": false, 847 + "notNull": true, 848 + "default": "now()" 849 + }, 850 + "xata_updatedat": { 851 + "name": "xata_updatedat", 852 + "type": "timestamp", 853 + "primaryKey": false, 854 + "notNull": true, 855 + "default": "now()" 856 + } 857 + }, 858 + "indexes": {}, 859 + "foreignKeys": { 860 + "dropbox_paths_directory_id_dropbox_directories_xata_id_fk": { 861 + "name": "dropbox_paths_directory_id_dropbox_directories_xata_id_fk", 862 + "tableFrom": "dropbox_paths", 863 + "tableTo": "dropbox_directories", 864 + "columnsFrom": [ 865 + "directory_id" 866 + ], 867 + "columnsTo": [ 868 + "xata_id" 869 + ], 870 + "onDelete": "no action", 871 + "onUpdate": "no action" 872 + } 873 + }, 874 + "compositePrimaryKeys": {}, 875 + "uniqueConstraints": { 876 + "dropbox_paths_file_id_unique": { 877 + "name": "dropbox_paths_file_id_unique", 878 + "nullsNotDistinct": false, 879 + "columns": [ 880 + "file_id" 881 + ] 882 + } 883 + }, 884 + "policies": {}, 885 + "checkConstraints": {}, 886 + "isRLSEnabled": false 887 + }, 888 + "public.dropbox_tokens": { 889 + "name": "dropbox_tokens", 890 + "schema": "", 891 + "columns": { 892 + "xata_id": { 893 + "name": "xata_id", 894 + "type": "text", 895 + "primaryKey": true, 896 + "notNull": true, 897 + "default": "xata_id()" 898 + }, 899 + "refresh_token": { 900 + "name": "refresh_token", 901 + "type": "text", 902 + "primaryKey": false, 903 + "notNull": true 904 + }, 905 + "xata_createdat": { 906 + "name": "xata_createdat", 907 + "type": "timestamp", 908 + "primaryKey": false, 909 + "notNull": true, 910 + "default": "now()" 911 + }, 912 + "xata_updatedat": { 913 + "name": "xata_updatedat", 914 + "type": "timestamp", 915 + "primaryKey": false, 916 + "notNull": true, 917 + "default": "now()" 918 + } 919 + }, 920 + "indexes": {}, 921 + "foreignKeys": {}, 922 + "compositePrimaryKeys": {}, 923 + "uniqueConstraints": {}, 924 + "policies": {}, 925 + "checkConstraints": {}, 926 + "isRLSEnabled": false 927 + }, 928 + "public.dropbox": { 929 + "name": "dropbox", 930 + "schema": "", 931 + "columns": { 932 + "xata_id": { 933 + "name": "xata_id", 934 + "type": "text", 935 + "primaryKey": true, 936 + "notNull": true, 937 + "default": "xata_id()" 938 + }, 939 + "user_id": { 940 + "name": "user_id", 941 + "type": "text", 942 + "primaryKey": false, 943 + "notNull": true 944 + }, 945 + "dropbox_token_id": { 946 + "name": "dropbox_token_id", 947 + "type": "text", 948 + "primaryKey": false, 949 + "notNull": true 950 + }, 951 + "xata_version": { 952 + "name": "xata_version", 953 + "type": "text", 954 + "primaryKey": false, 955 + "notNull": false 956 + }, 957 + "xata_createdat": { 958 + "name": "xata_createdat", 959 + "type": "timestamp", 960 + "primaryKey": false, 961 + "notNull": true, 962 + "default": "now()" 963 + }, 964 + "xata_updatedat": { 965 + "name": "xata_updatedat", 966 + "type": "timestamp", 967 + "primaryKey": false, 968 + "notNull": true, 969 + "default": "now()" 970 + } 971 + }, 972 + "indexes": {}, 973 + "foreignKeys": { 974 + "dropbox_user_id_users_xata_id_fk": { 975 + "name": "dropbox_user_id_users_xata_id_fk", 976 + "tableFrom": "dropbox", 977 + "tableTo": "users", 978 + "columnsFrom": [ 979 + "user_id" 980 + ], 981 + "columnsTo": [ 982 + "xata_id" 983 + ], 984 + "onDelete": "no action", 985 + "onUpdate": "no action" 986 + }, 987 + "dropbox_dropbox_token_id_dropbox_tokens_xata_id_fk": { 988 + "name": "dropbox_dropbox_token_id_dropbox_tokens_xata_id_fk", 989 + "tableFrom": "dropbox", 990 + "tableTo": "dropbox_tokens", 991 + "columnsFrom": [ 992 + "dropbox_token_id" 993 + ], 994 + "columnsTo": [ 995 + "xata_id" 996 + ], 997 + "onDelete": "no action", 998 + "onUpdate": "no action" 999 + } 1000 + }, 1001 + "compositePrimaryKeys": {}, 1002 + "uniqueConstraints": {}, 1003 + "policies": {}, 1004 + "checkConstraints": {}, 1005 + "isRLSEnabled": false 1006 + }, 1007 + "public.feeds": { 1008 + "name": "feeds", 1009 + "schema": "", 1010 + "columns": { 1011 + "xata_id": { 1012 + "name": "xata_id", 1013 + "type": "text", 1014 + "primaryKey": true, 1015 + "notNull": true, 1016 + "default": "xata_id()" 1017 + }, 1018 + "display_name": { 1019 + "name": "display_name", 1020 + "type": "text", 1021 + "primaryKey": false, 1022 + "notNull": true 1023 + }, 1024 + "description": { 1025 + "name": "description", 1026 + "type": "text", 1027 + "primaryKey": false, 1028 + "notNull": false 1029 + }, 1030 + "did": { 1031 + "name": "did", 1032 + "type": "text", 1033 + "primaryKey": false, 1034 + "notNull": true 1035 + }, 1036 + "uri": { 1037 + "name": "uri", 1038 + "type": "text", 1039 + "primaryKey": false, 1040 + "notNull": true 1041 + }, 1042 + "avatar": { 1043 + "name": "avatar", 1044 + "type": "text", 1045 + "primaryKey": false, 1046 + "notNull": false 1047 + }, 1048 + "user_id": { 1049 + "name": "user_id", 1050 + "type": "text", 1051 + "primaryKey": false, 1052 + "notNull": true 1053 + }, 1054 + "xata_version": { 1055 + "name": "xata_version", 1056 + "type": "integer", 1057 + "primaryKey": false, 1058 + "notNull": false 1059 + }, 1060 + "xata_createdat": { 1061 + "name": "xata_createdat", 1062 + "type": "timestamp", 1063 + "primaryKey": false, 1064 + "notNull": true, 1065 + "default": "now()" 1066 + }, 1067 + "xata_updatedat": { 1068 + "name": "xata_updatedat", 1069 + "type": "timestamp", 1070 + "primaryKey": false, 1071 + "notNull": true, 1072 + "default": "now()" 1073 + } 1074 + }, 1075 + "indexes": {}, 1076 + "foreignKeys": { 1077 + "feeds_user_id_users_xata_id_fk": { 1078 + "name": "feeds_user_id_users_xata_id_fk", 1079 + "tableFrom": "feeds", 1080 + "tableTo": "users", 1081 + "columnsFrom": [ 1082 + "user_id" 1083 + ], 1084 + "columnsTo": [ 1085 + "xata_id" 1086 + ], 1087 + "onDelete": "no action", 1088 + "onUpdate": "no action" 1089 + } 1090 + }, 1091 + "compositePrimaryKeys": {}, 1092 + "uniqueConstraints": { 1093 + "feeds_did_unique": { 1094 + "name": "feeds_did_unique", 1095 + "nullsNotDistinct": false, 1096 + "columns": [ 1097 + "did" 1098 + ] 1099 + }, 1100 + "feeds_uri_unique": { 1101 + "name": "feeds_uri_unique", 1102 + "nullsNotDistinct": false, 1103 + "columns": [ 1104 + "uri" 1105 + ] 1106 + } 1107 + }, 1108 + "policies": {}, 1109 + "checkConstraints": {}, 1110 + "isRLSEnabled": false 1111 + }, 1112 + "public.google_drive_accounts": { 1113 + "name": "google_drive_accounts", 1114 + "schema": "", 1115 + "columns": { 1116 + "xata_id": { 1117 + "name": "xata_id", 1118 + "type": "text", 1119 + "primaryKey": true, 1120 + "notNull": true, 1121 + "default": "xata_id()" 1122 + }, 1123 + "email": { 1124 + "name": "email", 1125 + "type": "text", 1126 + "primaryKey": false, 1127 + "notNull": true 1128 + }, 1129 + "is_beta_user": { 1130 + "name": "is_beta_user", 1131 + "type": "boolean", 1132 + "primaryKey": false, 1133 + "notNull": true, 1134 + "default": false 1135 + }, 1136 + "user_id": { 1137 + "name": "user_id", 1138 + "type": "text", 1139 + "primaryKey": false, 1140 + "notNull": true 1141 + }, 1142 + "xata_version": { 1143 + "name": "xata_version", 1144 + "type": "text", 1145 + "primaryKey": false, 1146 + "notNull": false 1147 + }, 1148 + "xata_createdat": { 1149 + "name": "xata_createdat", 1150 + "type": "timestamp", 1151 + "primaryKey": false, 1152 + "notNull": true, 1153 + "default": "now()" 1154 + }, 1155 + "xata_updatedat": { 1156 + "name": "xata_updatedat", 1157 + "type": "timestamp", 1158 + "primaryKey": false, 1159 + "notNull": true, 1160 + "default": "now()" 1161 + } 1162 + }, 1163 + "indexes": {}, 1164 + "foreignKeys": { 1165 + "google_drive_accounts_user_id_users_xata_id_fk": { 1166 + "name": "google_drive_accounts_user_id_users_xata_id_fk", 1167 + "tableFrom": "google_drive_accounts", 1168 + "tableTo": "users", 1169 + "columnsFrom": [ 1170 + "user_id" 1171 + ], 1172 + "columnsTo": [ 1173 + "xata_id" 1174 + ], 1175 + "onDelete": "no action", 1176 + "onUpdate": "no action" 1177 + } 1178 + }, 1179 + "compositePrimaryKeys": {}, 1180 + "uniqueConstraints": { 1181 + "google_drive_accounts_email_unique": { 1182 + "name": "google_drive_accounts_email_unique", 1183 + "nullsNotDistinct": false, 1184 + "columns": [ 1185 + "email" 1186 + ] 1187 + } 1188 + }, 1189 + "policies": {}, 1190 + "checkConstraints": {}, 1191 + "isRLSEnabled": false 1192 + }, 1193 + "public.google_drive_directories": { 1194 + "name": "google_drive_directories", 1195 + "schema": "", 1196 + "columns": { 1197 + "xata_id": { 1198 + "name": "xata_id", 1199 + "type": "text", 1200 + "primaryKey": true, 1201 + "notNull": true, 1202 + "default": "xata_id()" 1203 + }, 1204 + "name": { 1205 + "name": "name", 1206 + "type": "text", 1207 + "primaryKey": false, 1208 + "notNull": true 1209 + }, 1210 + "path": { 1211 + "name": "path", 1212 + "type": "text", 1213 + "primaryKey": false, 1214 + "notNull": true 1215 + }, 1216 + "parent_id": { 1217 + "name": "parent_id", 1218 + "type": "text", 1219 + "primaryKey": false, 1220 + "notNull": false 1221 + }, 1222 + "google_drive_id": { 1223 + "name": "google_drive_id", 1224 + "type": "text", 1225 + "primaryKey": false, 1226 + "notNull": true 1227 + }, 1228 + "file_id": { 1229 + "name": "file_id", 1230 + "type": "text", 1231 + "primaryKey": false, 1232 + "notNull": true 1233 + }, 1234 + "xata_version": { 1235 + "name": "xata_version", 1236 + "type": "text", 1237 + "primaryKey": false, 1238 + "notNull": false 1239 + }, 1240 + "xata_createdat": { 1241 + "name": "xata_createdat", 1242 + "type": "timestamp", 1243 + "primaryKey": false, 1244 + "notNull": true, 1245 + "default": "now()" 1246 + }, 1247 + "xata_updatedat": { 1248 + "name": "xata_updatedat", 1249 + "type": "timestamp", 1250 + "primaryKey": false, 1251 + "notNull": true, 1252 + "default": "now()" 1253 + } 1254 + }, 1255 + "indexes": {}, 1256 + "foreignKeys": { 1257 + "google_drive_directories_parent_id_google_drive_directories_xata_id_fk": { 1258 + "name": "google_drive_directories_parent_id_google_drive_directories_xata_id_fk", 1259 + "tableFrom": "google_drive_directories", 1260 + "tableTo": "google_drive_directories", 1261 + "columnsFrom": [ 1262 + "parent_id" 1263 + ], 1264 + "columnsTo": [ 1265 + "xata_id" 1266 + ], 1267 + "onDelete": "no action", 1268 + "onUpdate": "no action" 1269 + } 1270 + }, 1271 + "compositePrimaryKeys": {}, 1272 + "uniqueConstraints": { 1273 + "google_drive_directories_file_id_unique": { 1274 + "name": "google_drive_directories_file_id_unique", 1275 + "nullsNotDistinct": false, 1276 + "columns": [ 1277 + "file_id" 1278 + ] 1279 + } 1280 + }, 1281 + "policies": {}, 1282 + "checkConstraints": {}, 1283 + "isRLSEnabled": false 1284 + }, 1285 + "public.google_drive_paths": { 1286 + "name": "google_drive_paths", 1287 + "schema": "", 1288 + "columns": { 1289 + "xata_id": { 1290 + "name": "xata_id", 1291 + "type": "text", 1292 + "primaryKey": true, 1293 + "notNull": true, 1294 + "default": "xata_id()" 1295 + }, 1296 + "google_drive_id": { 1297 + "name": "google_drive_id", 1298 + "type": "text", 1299 + "primaryKey": false, 1300 + "notNull": true 1301 + }, 1302 + "track_id": { 1303 + "name": "track_id", 1304 + "type": "text", 1305 + "primaryKey": false, 1306 + "notNull": true 1307 + }, 1308 + "name": { 1309 + "name": "name", 1310 + "type": "text", 1311 + "primaryKey": false, 1312 + "notNull": true 1313 + }, 1314 + "directory_id": { 1315 + "name": "directory_id", 1316 + "type": "text", 1317 + "primaryKey": false, 1318 + "notNull": false 1319 + }, 1320 + "file_id": { 1321 + "name": "file_id", 1322 + "type": "text", 1323 + "primaryKey": false, 1324 + "notNull": true 1325 + }, 1326 + "xata_version": { 1327 + "name": "xata_version", 1328 + "type": "text", 1329 + "primaryKey": false, 1330 + "notNull": false 1331 + }, 1332 + "xata_createdat": { 1333 + "name": "xata_createdat", 1334 + "type": "timestamp", 1335 + "primaryKey": false, 1336 + "notNull": true, 1337 + "default": "now()" 1338 + }, 1339 + "xata_updatedat": { 1340 + "name": "xata_updatedat", 1341 + "type": "timestamp", 1342 + "primaryKey": false, 1343 + "notNull": true, 1344 + "default": "now()" 1345 + } 1346 + }, 1347 + "indexes": {}, 1348 + "foreignKeys": { 1349 + "google_drive_paths_directory_id_google_drive_directories_xata_id_fk": { 1350 + "name": "google_drive_paths_directory_id_google_drive_directories_xata_id_fk", 1351 + "tableFrom": "google_drive_paths", 1352 + "tableTo": "google_drive_directories", 1353 + "columnsFrom": [ 1354 + "directory_id" 1355 + ], 1356 + "columnsTo": [ 1357 + "xata_id" 1358 + ], 1359 + "onDelete": "no action", 1360 + "onUpdate": "no action" 1361 + } 1362 + }, 1363 + "compositePrimaryKeys": {}, 1364 + "uniqueConstraints": { 1365 + "google_drive_paths_file_id_unique": { 1366 + "name": "google_drive_paths_file_id_unique", 1367 + "nullsNotDistinct": false, 1368 + "columns": [ 1369 + "file_id" 1370 + ] 1371 + } 1372 + }, 1373 + "policies": {}, 1374 + "checkConstraints": {}, 1375 + "isRLSEnabled": false 1376 + }, 1377 + "public.google_drive_tokens": { 1378 + "name": "google_drive_tokens", 1379 + "schema": "", 1380 + "columns": { 1381 + "xata_id": { 1382 + "name": "xata_id", 1383 + "type": "text", 1384 + "primaryKey": true, 1385 + "notNull": true, 1386 + "default": "xata_id()" 1387 + }, 1388 + "refresh_token": { 1389 + "name": "refresh_token", 1390 + "type": "text", 1391 + "primaryKey": false, 1392 + "notNull": true 1393 + }, 1394 + "xata_createdat": { 1395 + "name": "xata_createdat", 1396 + "type": "timestamp", 1397 + "primaryKey": false, 1398 + "notNull": true, 1399 + "default": "now()" 1400 + }, 1401 + "xata_updatedat": { 1402 + "name": "xata_updatedat", 1403 + "type": "timestamp", 1404 + "primaryKey": false, 1405 + "notNull": true, 1406 + "default": "now()" 1407 + } 1408 + }, 1409 + "indexes": {}, 1410 + "foreignKeys": {}, 1411 + "compositePrimaryKeys": {}, 1412 + "uniqueConstraints": {}, 1413 + "policies": {}, 1414 + "checkConstraints": {}, 1415 + "isRLSEnabled": false 1416 + }, 1417 + "public.google_drive": { 1418 + "name": "google_drive", 1419 + "schema": "", 1420 + "columns": { 1421 + "xata_id": { 1422 + "name": "xata_id", 1423 + "type": "text", 1424 + "primaryKey": true, 1425 + "notNull": true, 1426 + "default": "xata_id()" 1427 + }, 1428 + "google_drive_token_id": { 1429 + "name": "google_drive_token_id", 1430 + "type": "text", 1431 + "primaryKey": false, 1432 + "notNull": true 1433 + }, 1434 + "user_id": { 1435 + "name": "user_id", 1436 + "type": "text", 1437 + "primaryKey": false, 1438 + "notNull": true 1439 + }, 1440 + "xata_version": { 1441 + "name": "xata_version", 1442 + "type": "text", 1443 + "primaryKey": false, 1444 + "notNull": false 1445 + }, 1446 + "xata_createdat": { 1447 + "name": "xata_createdat", 1448 + "type": "timestamp", 1449 + "primaryKey": false, 1450 + "notNull": true, 1451 + "default": "now()" 1452 + }, 1453 + "xata_updatedat": { 1454 + "name": "xata_updatedat", 1455 + "type": "timestamp", 1456 + "primaryKey": false, 1457 + "notNull": true, 1458 + "default": "now()" 1459 + } 1460 + }, 1461 + "indexes": {}, 1462 + "foreignKeys": { 1463 + "google_drive_google_drive_token_id_google_drive_tokens_xata_id_fk": { 1464 + "name": "google_drive_google_drive_token_id_google_drive_tokens_xata_id_fk", 1465 + "tableFrom": "google_drive", 1466 + "tableTo": "google_drive_tokens", 1467 + "columnsFrom": [ 1468 + "google_drive_token_id" 1469 + ], 1470 + "columnsTo": [ 1471 + "xata_id" 1472 + ], 1473 + "onDelete": "no action", 1474 + "onUpdate": "no action" 1475 + }, 1476 + "google_drive_user_id_users_xata_id_fk": { 1477 + "name": "google_drive_user_id_users_xata_id_fk", 1478 + "tableFrom": "google_drive", 1479 + "tableTo": "users", 1480 + "columnsFrom": [ 1481 + "user_id" 1482 + ], 1483 + "columnsTo": [ 1484 + "xata_id" 1485 + ], 1486 + "onDelete": "no action", 1487 + "onUpdate": "no action" 1488 + } 1489 + }, 1490 + "compositePrimaryKeys": {}, 1491 + "uniqueConstraints": {}, 1492 + "policies": {}, 1493 + "checkConstraints": {}, 1494 + "isRLSEnabled": false 1495 + }, 1496 + "public.loved_tracks": { 1497 + "name": "loved_tracks", 1498 + "schema": "", 1499 + "columns": { 1500 + "xata_id": { 1501 + "name": "xata_id", 1502 + "type": "text", 1503 + "primaryKey": true, 1504 + "notNull": true, 1505 + "default": "xata_id()" 1506 + }, 1507 + "user_id": { 1508 + "name": "user_id", 1509 + "type": "text", 1510 + "primaryKey": false, 1511 + "notNull": true 1512 + }, 1513 + "track_id": { 1514 + "name": "track_id", 1515 + "type": "text", 1516 + "primaryKey": false, 1517 + "notNull": true 1518 + }, 1519 + "uri": { 1520 + "name": "uri", 1521 + "type": "text", 1522 + "primaryKey": false, 1523 + "notNull": false 1524 + }, 1525 + "xata_createdat": { 1526 + "name": "xata_createdat", 1527 + "type": "timestamp", 1528 + "primaryKey": false, 1529 + "notNull": true, 1530 + "default": "now()" 1531 + } 1532 + }, 1533 + "indexes": {}, 1534 + "foreignKeys": { 1535 + "loved_tracks_user_id_users_xata_id_fk": { 1536 + "name": "loved_tracks_user_id_users_xata_id_fk", 1537 + "tableFrom": "loved_tracks", 1538 + "tableTo": "users", 1539 + "columnsFrom": [ 1540 + "user_id" 1541 + ], 1542 + "columnsTo": [ 1543 + "xata_id" 1544 + ], 1545 + "onDelete": "no action", 1546 + "onUpdate": "no action" 1547 + }, 1548 + "loved_tracks_track_id_tracks_xata_id_fk": { 1549 + "name": "loved_tracks_track_id_tracks_xata_id_fk", 1550 + "tableFrom": "loved_tracks", 1551 + "tableTo": "tracks", 1552 + "columnsFrom": [ 1553 + "track_id" 1554 + ], 1555 + "columnsTo": [ 1556 + "xata_id" 1557 + ], 1558 + "onDelete": "no action", 1559 + "onUpdate": "no action" 1560 + } 1561 + }, 1562 + "compositePrimaryKeys": {}, 1563 + "uniqueConstraints": { 1564 + "loved_tracks_uri_unique": { 1565 + "name": "loved_tracks_uri_unique", 1566 + "nullsNotDistinct": false, 1567 + "columns": [ 1568 + "uri" 1569 + ] 1570 + } 1571 + }, 1572 + "policies": {}, 1573 + "checkConstraints": {}, 1574 + "isRLSEnabled": false 1575 + }, 1576 + "public.playlist_tracks": { 1577 + "name": "playlist_tracks", 1578 + "schema": "", 1579 + "columns": { 1580 + "xata_id": { 1581 + "name": "xata_id", 1582 + "type": "text", 1583 + "primaryKey": true, 1584 + "notNull": true, 1585 + "default": "xata_id()" 1586 + }, 1587 + "playlist_id": { 1588 + "name": "playlist_id", 1589 + "type": "text", 1590 + "primaryKey": false, 1591 + "notNull": true 1592 + }, 1593 + "track_id": { 1594 + "name": "track_id", 1595 + "type": "text", 1596 + "primaryKey": false, 1597 + "notNull": true 1598 + }, 1599 + "xata_createdat": { 1600 + "name": "xata_createdat", 1601 + "type": "timestamp", 1602 + "primaryKey": false, 1603 + "notNull": true, 1604 + "default": "now()" 1605 + } 1606 + }, 1607 + "indexes": {}, 1608 + "foreignKeys": { 1609 + "playlist_tracks_playlist_id_playlists_xata_id_fk": { 1610 + "name": "playlist_tracks_playlist_id_playlists_xata_id_fk", 1611 + "tableFrom": "playlist_tracks", 1612 + "tableTo": "playlists", 1613 + "columnsFrom": [ 1614 + "playlist_id" 1615 + ], 1616 + "columnsTo": [ 1617 + "xata_id" 1618 + ], 1619 + "onDelete": "no action", 1620 + "onUpdate": "no action" 1621 + }, 1622 + "playlist_tracks_track_id_tracks_xata_id_fk": { 1623 + "name": "playlist_tracks_track_id_tracks_xata_id_fk", 1624 + "tableFrom": "playlist_tracks", 1625 + "tableTo": "tracks", 1626 + "columnsFrom": [ 1627 + "track_id" 1628 + ], 1629 + "columnsTo": [ 1630 + "xata_id" 1631 + ], 1632 + "onDelete": "no action", 1633 + "onUpdate": "no action" 1634 + } 1635 + }, 1636 + "compositePrimaryKeys": {}, 1637 + "uniqueConstraints": {}, 1638 + "policies": {}, 1639 + "checkConstraints": {}, 1640 + "isRLSEnabled": false 1641 + }, 1642 + "public.playlists": { 1643 + "name": "playlists", 1644 + "schema": "", 1645 + "columns": { 1646 + "xata_id": { 1647 + "name": "xata_id", 1648 + "type": "text", 1649 + "primaryKey": true, 1650 + "notNull": true, 1651 + "default": "xata_id()" 1652 + }, 1653 + "name": { 1654 + "name": "name", 1655 + "type": "text", 1656 + "primaryKey": false, 1657 + "notNull": true 1658 + }, 1659 + "picture": { 1660 + "name": "picture", 1661 + "type": "text", 1662 + "primaryKey": false, 1663 + "notNull": false 1664 + }, 1665 + "description": { 1666 + "name": "description", 1667 + "type": "text", 1668 + "primaryKey": false, 1669 + "notNull": false 1670 + }, 1671 + "uri": { 1672 + "name": "uri", 1673 + "type": "text", 1674 + "primaryKey": false, 1675 + "notNull": false 1676 + }, 1677 + "spotify_link": { 1678 + "name": "spotify_link", 1679 + "type": "text", 1680 + "primaryKey": false, 1681 + "notNull": false 1682 + }, 1683 + "tidal_link": { 1684 + "name": "tidal_link", 1685 + "type": "text", 1686 + "primaryKey": false, 1687 + "notNull": false 1688 + }, 1689 + "apple_music_link": { 1690 + "name": "apple_music_link", 1691 + "type": "text", 1692 + "primaryKey": false, 1693 + "notNull": false 1694 + }, 1695 + "created_by": { 1696 + "name": "created_by", 1697 + "type": "text", 1698 + "primaryKey": false, 1699 + "notNull": true 1700 + }, 1701 + "xata_createdat": { 1702 + "name": "xata_createdat", 1703 + "type": "timestamp", 1704 + "primaryKey": false, 1705 + "notNull": true, 1706 + "default": "now()" 1707 + }, 1708 + "xata_updatedat": { 1709 + "name": "xata_updatedat", 1710 + "type": "timestamp", 1711 + "primaryKey": false, 1712 + "notNull": true, 1713 + "default": "now()" 1714 + } 1715 + }, 1716 + "indexes": {}, 1717 + "foreignKeys": { 1718 + "playlists_created_by_users_xata_id_fk": { 1719 + "name": "playlists_created_by_users_xata_id_fk", 1720 + "tableFrom": "playlists", 1721 + "tableTo": "users", 1722 + "columnsFrom": [ 1723 + "created_by" 1724 + ], 1725 + "columnsTo": [ 1726 + "xata_id" 1727 + ], 1728 + "onDelete": "no action", 1729 + "onUpdate": "no action" 1730 + } 1731 + }, 1732 + "compositePrimaryKeys": {}, 1733 + "uniqueConstraints": { 1734 + "playlists_uri_unique": { 1735 + "name": "playlists_uri_unique", 1736 + "nullsNotDistinct": false, 1737 + "columns": [ 1738 + "uri" 1739 + ] 1740 + } 1741 + }, 1742 + "policies": {}, 1743 + "checkConstraints": {}, 1744 + "isRLSEnabled": false 1745 + }, 1746 + "public.profile_shouts": { 1747 + "name": "profile_shouts", 1748 + "schema": "", 1749 + "columns": { 1750 + "xata_id": { 1751 + "name": "xata_id", 1752 + "type": "text", 1753 + "primaryKey": true, 1754 + "notNull": true, 1755 + "default": "xata_id()" 1756 + }, 1757 + "user_id": { 1758 + "name": "user_id", 1759 + "type": "text", 1760 + "primaryKey": false, 1761 + "notNull": true 1762 + }, 1763 + "shout_id": { 1764 + "name": "shout_id", 1765 + "type": "text", 1766 + "primaryKey": false, 1767 + "notNull": true 1768 + }, 1769 + "xata_createdat": { 1770 + "name": "xata_createdat", 1771 + "type": "timestamp", 1772 + "primaryKey": false, 1773 + "notNull": true, 1774 + "default": "now()" 1775 + } 1776 + }, 1777 + "indexes": {}, 1778 + "foreignKeys": { 1779 + "profile_shouts_user_id_users_xata_id_fk": { 1780 + "name": "profile_shouts_user_id_users_xata_id_fk", 1781 + "tableFrom": "profile_shouts", 1782 + "tableTo": "users", 1783 + "columnsFrom": [ 1784 + "user_id" 1785 + ], 1786 + "columnsTo": [ 1787 + "xata_id" 1788 + ], 1789 + "onDelete": "no action", 1790 + "onUpdate": "no action" 1791 + }, 1792 + "profile_shouts_shout_id_shouts_xata_id_fk": { 1793 + "name": "profile_shouts_shout_id_shouts_xata_id_fk", 1794 + "tableFrom": "profile_shouts", 1795 + "tableTo": "shouts", 1796 + "columnsFrom": [ 1797 + "shout_id" 1798 + ], 1799 + "columnsTo": [ 1800 + "xata_id" 1801 + ], 1802 + "onDelete": "no action", 1803 + "onUpdate": "no action" 1804 + } 1805 + }, 1806 + "compositePrimaryKeys": {}, 1807 + "uniqueConstraints": {}, 1808 + "policies": {}, 1809 + "checkConstraints": {}, 1810 + "isRLSEnabled": false 1811 + }, 1812 + "public.queue_tracks": { 1813 + "name": "queue_tracks", 1814 + "schema": "", 1815 + "columns": { 1816 + "xata_id": { 1817 + "name": "xata_id", 1818 + "type": "text", 1819 + "primaryKey": true, 1820 + "notNull": true, 1821 + "default": "xata_id()" 1822 + }, 1823 + "user_id": { 1824 + "name": "user_id", 1825 + "type": "text", 1826 + "primaryKey": false, 1827 + "notNull": true 1828 + }, 1829 + "track_id": { 1830 + "name": "track_id", 1831 + "type": "text", 1832 + "primaryKey": false, 1833 + "notNull": true 1834 + }, 1835 + "position": { 1836 + "name": "position", 1837 + "type": "integer", 1838 + "primaryKey": false, 1839 + "notNull": true 1840 + }, 1841 + "file_uri": { 1842 + "name": "file_uri", 1843 + "type": "text", 1844 + "primaryKey": false, 1845 + "notNull": true 1846 + }, 1847 + "xata_version": { 1848 + "name": "xata_version", 1849 + "type": "integer", 1850 + "primaryKey": false, 1851 + "notNull": true, 1852 + "default": 0 1853 + }, 1854 + "xata_createdat": { 1855 + "name": "xata_createdat", 1856 + "type": "timestamp", 1857 + "primaryKey": false, 1858 + "notNull": true, 1859 + "default": "now()" 1860 + }, 1861 + "xata_updatedat": { 1862 + "name": "xata_updatedat", 1863 + "type": "timestamp", 1864 + "primaryKey": false, 1865 + "notNull": true, 1866 + "default": "now()" 1867 + } 1868 + }, 1869 + "indexes": {}, 1870 + "foreignKeys": { 1871 + "queue_tracks_user_id_users_xata_id_fk": { 1872 + "name": "queue_tracks_user_id_users_xata_id_fk", 1873 + "tableFrom": "queue_tracks", 1874 + "tableTo": "users", 1875 + "columnsFrom": [ 1876 + "user_id" 1877 + ], 1878 + "columnsTo": [ 1879 + "xata_id" 1880 + ], 1881 + "onDelete": "no action", 1882 + "onUpdate": "no action" 1883 + }, 1884 + "queue_tracks_track_id_tracks_xata_id_fk": { 1885 + "name": "queue_tracks_track_id_tracks_xata_id_fk", 1886 + "tableFrom": "queue_tracks", 1887 + "tableTo": "tracks", 1888 + "columnsFrom": [ 1889 + "track_id" 1890 + ], 1891 + "columnsTo": [ 1892 + "xata_id" 1893 + ], 1894 + "onDelete": "no action", 1895 + "onUpdate": "no action" 1896 + } 1897 + }, 1898 + "compositePrimaryKeys": {}, 1899 + "uniqueConstraints": {}, 1900 + "policies": {}, 1901 + "checkConstraints": {}, 1902 + "isRLSEnabled": false 1903 + }, 1904 + "public.scrobbles": { 1905 + "name": "scrobbles", 1906 + "schema": "", 1907 + "columns": { 1908 + "xata_id": { 1909 + "name": "xata_id", 1910 + "type": "text", 1911 + "primaryKey": true, 1912 + "notNull": true, 1913 + "default": "xata_id()" 1914 + }, 1915 + "user_id": { 1916 + "name": "user_id", 1917 + "type": "text", 1918 + "primaryKey": false, 1919 + "notNull": false 1920 + }, 1921 + "track_id": { 1922 + "name": "track_id", 1923 + "type": "text", 1924 + "primaryKey": false, 1925 + "notNull": false 1926 + }, 1927 + "album_id": { 1928 + "name": "album_id", 1929 + "type": "text", 1930 + "primaryKey": false, 1931 + "notNull": false 1932 + }, 1933 + "artist_id": { 1934 + "name": "artist_id", 1935 + "type": "text", 1936 + "primaryKey": false, 1937 + "notNull": false 1938 + }, 1939 + "uri": { 1940 + "name": "uri", 1941 + "type": "text", 1942 + "primaryKey": false, 1943 + "notNull": false 1944 + }, 1945 + "xata_createdat": { 1946 + "name": "xata_createdat", 1947 + "type": "timestamp", 1948 + "primaryKey": false, 1949 + "notNull": true, 1950 + "default": "now()" 1951 + }, 1952 + "xata_updatedat": { 1953 + "name": "xata_updatedat", 1954 + "type": "timestamp", 1955 + "primaryKey": false, 1956 + "notNull": true, 1957 + "default": "now()" 1958 + }, 1959 + "xata_version": { 1960 + "name": "xata_version", 1961 + "type": "integer", 1962 + "primaryKey": false, 1963 + "notNull": false 1964 + }, 1965 + "timestamp": { 1966 + "name": "timestamp", 1967 + "type": "timestamp", 1968 + "primaryKey": false, 1969 + "notNull": true, 1970 + "default": "now()" 1971 + } 1972 + }, 1973 + "indexes": {}, 1974 + "foreignKeys": { 1975 + "scrobbles_user_id_users_xata_id_fk": { 1976 + "name": "scrobbles_user_id_users_xata_id_fk", 1977 + "tableFrom": "scrobbles", 1978 + "tableTo": "users", 1979 + "columnsFrom": [ 1980 + "user_id" 1981 + ], 1982 + "columnsTo": [ 1983 + "xata_id" 1984 + ], 1985 + "onDelete": "no action", 1986 + "onUpdate": "no action" 1987 + }, 1988 + "scrobbles_track_id_tracks_xata_id_fk": { 1989 + "name": "scrobbles_track_id_tracks_xata_id_fk", 1990 + "tableFrom": "scrobbles", 1991 + "tableTo": "tracks", 1992 + "columnsFrom": [ 1993 + "track_id" 1994 + ], 1995 + "columnsTo": [ 1996 + "xata_id" 1997 + ], 1998 + "onDelete": "no action", 1999 + "onUpdate": "no action" 2000 + }, 2001 + "scrobbles_album_id_albums_xata_id_fk": { 2002 + "name": "scrobbles_album_id_albums_xata_id_fk", 2003 + "tableFrom": "scrobbles", 2004 + "tableTo": "albums", 2005 + "columnsFrom": [ 2006 + "album_id" 2007 + ], 2008 + "columnsTo": [ 2009 + "xata_id" 2010 + ], 2011 + "onDelete": "no action", 2012 + "onUpdate": "no action" 2013 + }, 2014 + "scrobbles_artist_id_artists_xata_id_fk": { 2015 + "name": "scrobbles_artist_id_artists_xata_id_fk", 2016 + "tableFrom": "scrobbles", 2017 + "tableTo": "artists", 2018 + "columnsFrom": [ 2019 + "artist_id" 2020 + ], 2021 + "columnsTo": [ 2022 + "xata_id" 2023 + ], 2024 + "onDelete": "no action", 2025 + "onUpdate": "no action" 2026 + } 2027 + }, 2028 + "compositePrimaryKeys": {}, 2029 + "uniqueConstraints": { 2030 + "scrobbles_uri_unique": { 2031 + "name": "scrobbles_uri_unique", 2032 + "nullsNotDistinct": false, 2033 + "columns": [ 2034 + "uri" 2035 + ] 2036 + } 2037 + }, 2038 + "policies": {}, 2039 + "checkConstraints": {}, 2040 + "isRLSEnabled": false 2041 + }, 2042 + "public.shout_likes": { 2043 + "name": "shout_likes", 2044 + "schema": "", 2045 + "columns": { 2046 + "xata_id": { 2047 + "name": "xata_id", 2048 + "type": "text", 2049 + "primaryKey": true, 2050 + "notNull": true, 2051 + "default": "xata_id()" 2052 + }, 2053 + "user_id": { 2054 + "name": "user_id", 2055 + "type": "text", 2056 + "primaryKey": false, 2057 + "notNull": true 2058 + }, 2059 + "shout_id": { 2060 + "name": "shout_id", 2061 + "type": "text", 2062 + "primaryKey": false, 2063 + "notNull": true 2064 + }, 2065 + "xata_createdat": { 2066 + "name": "xata_createdat", 2067 + "type": "timestamp", 2068 + "primaryKey": false, 2069 + "notNull": true, 2070 + "default": "now()" 2071 + }, 2072 + "uri": { 2073 + "name": "uri", 2074 + "type": "text", 2075 + "primaryKey": false, 2076 + "notNull": true 2077 + } 2078 + }, 2079 + "indexes": {}, 2080 + "foreignKeys": { 2081 + "shout_likes_user_id_users_xata_id_fk": { 2082 + "name": "shout_likes_user_id_users_xata_id_fk", 2083 + "tableFrom": "shout_likes", 2084 + "tableTo": "users", 2085 + "columnsFrom": [ 2086 + "user_id" 2087 + ], 2088 + "columnsTo": [ 2089 + "xata_id" 2090 + ], 2091 + "onDelete": "no action", 2092 + "onUpdate": "no action" 2093 + }, 2094 + "shout_likes_shout_id_shouts_xata_id_fk": { 2095 + "name": "shout_likes_shout_id_shouts_xata_id_fk", 2096 + "tableFrom": "shout_likes", 2097 + "tableTo": "shouts", 2098 + "columnsFrom": [ 2099 + "shout_id" 2100 + ], 2101 + "columnsTo": [ 2102 + "xata_id" 2103 + ], 2104 + "onDelete": "no action", 2105 + "onUpdate": "no action" 2106 + } 2107 + }, 2108 + "compositePrimaryKeys": {}, 2109 + "uniqueConstraints": { 2110 + "shout_likes_uri_unique": { 2111 + "name": "shout_likes_uri_unique", 2112 + "nullsNotDistinct": false, 2113 + "columns": [ 2114 + "uri" 2115 + ] 2116 + } 2117 + }, 2118 + "policies": {}, 2119 + "checkConstraints": {}, 2120 + "isRLSEnabled": false 2121 + }, 2122 + "public.shout_reports": { 2123 + "name": "shout_reports", 2124 + "schema": "", 2125 + "columns": { 2126 + "xata_id": { 2127 + "name": "xata_id", 2128 + "type": "text", 2129 + "primaryKey": true, 2130 + "notNull": true, 2131 + "default": "xata_id()" 2132 + }, 2133 + "user_id": { 2134 + "name": "user_id", 2135 + "type": "text", 2136 + "primaryKey": false, 2137 + "notNull": true 2138 + }, 2139 + "shout_id": { 2140 + "name": "shout_id", 2141 + "type": "text", 2142 + "primaryKey": false, 2143 + "notNull": true 2144 + }, 2145 + "xata_createdat": { 2146 + "name": "xata_createdat", 2147 + "type": "timestamp", 2148 + "primaryKey": false, 2149 + "notNull": true, 2150 + "default": "now()" 2151 + } 2152 + }, 2153 + "indexes": {}, 2154 + "foreignKeys": { 2155 + "shout_reports_user_id_users_xata_id_fk": { 2156 + "name": "shout_reports_user_id_users_xata_id_fk", 2157 + "tableFrom": "shout_reports", 2158 + "tableTo": "users", 2159 + "columnsFrom": [ 2160 + "user_id" 2161 + ], 2162 + "columnsTo": [ 2163 + "xata_id" 2164 + ], 2165 + "onDelete": "no action", 2166 + "onUpdate": "no action" 2167 + }, 2168 + "shout_reports_shout_id_shouts_xata_id_fk": { 2169 + "name": "shout_reports_shout_id_shouts_xata_id_fk", 2170 + "tableFrom": "shout_reports", 2171 + "tableTo": "shouts", 2172 + "columnsFrom": [ 2173 + "shout_id" 2174 + ], 2175 + "columnsTo": [ 2176 + "xata_id" 2177 + ], 2178 + "onDelete": "no action", 2179 + "onUpdate": "no action" 2180 + } 2181 + }, 2182 + "compositePrimaryKeys": {}, 2183 + "uniqueConstraints": {}, 2184 + "policies": {}, 2185 + "checkConstraints": {}, 2186 + "isRLSEnabled": false 2187 + }, 2188 + "public.shouts": { 2189 + "name": "shouts", 2190 + "schema": "", 2191 + "columns": { 2192 + "xata_id": { 2193 + "name": "xata_id", 2194 + "type": "text", 2195 + "primaryKey": true, 2196 + "notNull": true, 2197 + "default": "xata_id()" 2198 + }, 2199 + "content": { 2200 + "name": "content", 2201 + "type": "text", 2202 + "primaryKey": false, 2203 + "notNull": true 2204 + }, 2205 + "track_id": { 2206 + "name": "track_id", 2207 + "type": "text", 2208 + "primaryKey": false, 2209 + "notNull": false 2210 + }, 2211 + "artist_id": { 2212 + "name": "artist_id", 2213 + "type": "text", 2214 + "primaryKey": false, 2215 + "notNull": false 2216 + }, 2217 + "album_id": { 2218 + "name": "album_id", 2219 + "type": "text", 2220 + "primaryKey": false, 2221 + "notNull": false 2222 + }, 2223 + "scrobble_id": { 2224 + "name": "scrobble_id", 2225 + "type": "text", 2226 + "primaryKey": false, 2227 + "notNull": false 2228 + }, 2229 + "uri": { 2230 + "name": "uri", 2231 + "type": "text", 2232 + "primaryKey": false, 2233 + "notNull": true 2234 + }, 2235 + "author_id": { 2236 + "name": "author_id", 2237 + "type": "text", 2238 + "primaryKey": false, 2239 + "notNull": true 2240 + }, 2241 + "parent_id": { 2242 + "name": "parent_id", 2243 + "type": "text", 2244 + "primaryKey": false, 2245 + "notNull": false 2246 + }, 2247 + "xata_createdat": { 2248 + "name": "xata_createdat", 2249 + "type": "timestamp", 2250 + "primaryKey": false, 2251 + "notNull": true, 2252 + "default": "now()" 2253 + }, 2254 + "xata_updatedat": { 2255 + "name": "xata_updatedat", 2256 + "type": "timestamp", 2257 + "primaryKey": false, 2258 + "notNull": true, 2259 + "default": "now()" 2260 + } 2261 + }, 2262 + "indexes": {}, 2263 + "foreignKeys": { 2264 + "shouts_track_id_tracks_xata_id_fk": { 2265 + "name": "shouts_track_id_tracks_xata_id_fk", 2266 + "tableFrom": "shouts", 2267 + "tableTo": "tracks", 2268 + "columnsFrom": [ 2269 + "track_id" 2270 + ], 2271 + "columnsTo": [ 2272 + "xata_id" 2273 + ], 2274 + "onDelete": "no action", 2275 + "onUpdate": "no action" 2276 + }, 2277 + "shouts_artist_id_users_xata_id_fk": { 2278 + "name": "shouts_artist_id_users_xata_id_fk", 2279 + "tableFrom": "shouts", 2280 + "tableTo": "users", 2281 + "columnsFrom": [ 2282 + "artist_id" 2283 + ], 2284 + "columnsTo": [ 2285 + "xata_id" 2286 + ], 2287 + "onDelete": "no action", 2288 + "onUpdate": "no action" 2289 + }, 2290 + "shouts_album_id_albums_xata_id_fk": { 2291 + "name": "shouts_album_id_albums_xata_id_fk", 2292 + "tableFrom": "shouts", 2293 + "tableTo": "albums", 2294 + "columnsFrom": [ 2295 + "album_id" 2296 + ], 2297 + "columnsTo": [ 2298 + "xata_id" 2299 + ], 2300 + "onDelete": "no action", 2301 + "onUpdate": "no action" 2302 + }, 2303 + "shouts_scrobble_id_scrobbles_xata_id_fk": { 2304 + "name": "shouts_scrobble_id_scrobbles_xata_id_fk", 2305 + "tableFrom": "shouts", 2306 + "tableTo": "scrobbles", 2307 + "columnsFrom": [ 2308 + "scrobble_id" 2309 + ], 2310 + "columnsTo": [ 2311 + "xata_id" 2312 + ], 2313 + "onDelete": "no action", 2314 + "onUpdate": "no action" 2315 + }, 2316 + "shouts_author_id_users_xata_id_fk": { 2317 + "name": "shouts_author_id_users_xata_id_fk", 2318 + "tableFrom": "shouts", 2319 + "tableTo": "users", 2320 + "columnsFrom": [ 2321 + "author_id" 2322 + ], 2323 + "columnsTo": [ 2324 + "xata_id" 2325 + ], 2326 + "onDelete": "no action", 2327 + "onUpdate": "no action" 2328 + }, 2329 + "shouts_parent_id_shouts_xata_id_fk": { 2330 + "name": "shouts_parent_id_shouts_xata_id_fk", 2331 + "tableFrom": "shouts", 2332 + "tableTo": "shouts", 2333 + "columnsFrom": [ 2334 + "parent_id" 2335 + ], 2336 + "columnsTo": [ 2337 + "xata_id" 2338 + ], 2339 + "onDelete": "no action", 2340 + "onUpdate": "no action" 2341 + } 2342 + }, 2343 + "compositePrimaryKeys": {}, 2344 + "uniqueConstraints": { 2345 + "shouts_uri_unique": { 2346 + "name": "shouts_uri_unique", 2347 + "nullsNotDistinct": false, 2348 + "columns": [ 2349 + "uri" 2350 + ] 2351 + } 2352 + }, 2353 + "policies": {}, 2354 + "checkConstraints": {}, 2355 + "isRLSEnabled": false 2356 + }, 2357 + "public.spotify_accounts": { 2358 + "name": "spotify_accounts", 2359 + "schema": "", 2360 + "columns": { 2361 + "xata_id": { 2362 + "name": "xata_id", 2363 + "type": "text", 2364 + "primaryKey": true, 2365 + "notNull": true, 2366 + "default": "xata_id()" 2367 + }, 2368 + "xata_version": { 2369 + "name": "xata_version", 2370 + "type": "integer", 2371 + "primaryKey": false, 2372 + "notNull": false 2373 + }, 2374 + "email": { 2375 + "name": "email", 2376 + "type": "text", 2377 + "primaryKey": false, 2378 + "notNull": true 2379 + }, 2380 + "user_id": { 2381 + "name": "user_id", 2382 + "type": "text", 2383 + "primaryKey": false, 2384 + "notNull": true 2385 + }, 2386 + "is_beta_user": { 2387 + "name": "is_beta_user", 2388 + "type": "boolean", 2389 + "primaryKey": false, 2390 + "notNull": true, 2391 + "default": false 2392 + }, 2393 + "xata_createdat": { 2394 + "name": "xata_createdat", 2395 + "type": "timestamp", 2396 + "primaryKey": false, 2397 + "notNull": true, 2398 + "default": "now()" 2399 + }, 2400 + "xata_updatedat": { 2401 + "name": "xata_updatedat", 2402 + "type": "timestamp", 2403 + "primaryKey": false, 2404 + "notNull": true, 2405 + "default": "now()" 2406 + } 2407 + }, 2408 + "indexes": {}, 2409 + "foreignKeys": { 2410 + "spotify_accounts_user_id_users_xata_id_fk": { 2411 + "name": "spotify_accounts_user_id_users_xata_id_fk", 2412 + "tableFrom": "spotify_accounts", 2413 + "tableTo": "users", 2414 + "columnsFrom": [ 2415 + "user_id" 2416 + ], 2417 + "columnsTo": [ 2418 + "xata_id" 2419 + ], 2420 + "onDelete": "no action", 2421 + "onUpdate": "no action" 2422 + } 2423 + }, 2424 + "compositePrimaryKeys": {}, 2425 + "uniqueConstraints": {}, 2426 + "policies": {}, 2427 + "checkConstraints": {}, 2428 + "isRLSEnabled": false 2429 + }, 2430 + "public.spotify_tokens": { 2431 + "name": "spotify_tokens", 2432 + "schema": "", 2433 + "columns": { 2434 + "xata_id": { 2435 + "name": "xata_id", 2436 + "type": "text", 2437 + "primaryKey": true, 2438 + "notNull": true, 2439 + "default": "xata_id()" 2440 + }, 2441 + "xata_version": { 2442 + "name": "xata_version", 2443 + "type": "integer", 2444 + "primaryKey": false, 2445 + "notNull": false 2446 + }, 2447 + "access_token": { 2448 + "name": "access_token", 2449 + "type": "text", 2450 + "primaryKey": false, 2451 + "notNull": true 2452 + }, 2453 + "refresh_token": { 2454 + "name": "refresh_token", 2455 + "type": "text", 2456 + "primaryKey": false, 2457 + "notNull": true 2458 + }, 2459 + "user_id": { 2460 + "name": "user_id", 2461 + "type": "text", 2462 + "primaryKey": false, 2463 + "notNull": true 2464 + }, 2465 + "xata_createdat": { 2466 + "name": "xata_createdat", 2467 + "type": "timestamp", 2468 + "primaryKey": false, 2469 + "notNull": true, 2470 + "default": "now()" 2471 + }, 2472 + "xata_updatedat": { 2473 + "name": "xata_updatedat", 2474 + "type": "timestamp", 2475 + "primaryKey": false, 2476 + "notNull": true, 2477 + "default": "now()" 2478 + } 2479 + }, 2480 + "indexes": {}, 2481 + "foreignKeys": { 2482 + "spotify_tokens_user_id_users_xata_id_fk": { 2483 + "name": "spotify_tokens_user_id_users_xata_id_fk", 2484 + "tableFrom": "spotify_tokens", 2485 + "tableTo": "users", 2486 + "columnsFrom": [ 2487 + "user_id" 2488 + ], 2489 + "columnsTo": [ 2490 + "xata_id" 2491 + ], 2492 + "onDelete": "no action", 2493 + "onUpdate": "no action" 2494 + } 2495 + }, 2496 + "compositePrimaryKeys": {}, 2497 + "uniqueConstraints": {}, 2498 + "policies": {}, 2499 + "checkConstraints": {}, 2500 + "isRLSEnabled": false 2501 + }, 2502 + "public.tracks": { 2503 + "name": "tracks", 2504 + "schema": "", 2505 + "columns": { 2506 + "xata_id": { 2507 + "name": "xata_id", 2508 + "type": "text", 2509 + "primaryKey": true, 2510 + "notNull": true, 2511 + "default": "xata_id()" 2512 + }, 2513 + "title": { 2514 + "name": "title", 2515 + "type": "text", 2516 + "primaryKey": false, 2517 + "notNull": true 2518 + }, 2519 + "artist": { 2520 + "name": "artist", 2521 + "type": "text", 2522 + "primaryKey": false, 2523 + "notNull": true 2524 + }, 2525 + "album_artist": { 2526 + "name": "album_artist", 2527 + "type": "text", 2528 + "primaryKey": false, 2529 + "notNull": true 2530 + }, 2531 + "album_art": { 2532 + "name": "album_art", 2533 + "type": "text", 2534 + "primaryKey": false, 2535 + "notNull": false 2536 + }, 2537 + "album": { 2538 + "name": "album", 2539 + "type": "text", 2540 + "primaryKey": false, 2541 + "notNull": true 2542 + }, 2543 + "track_number": { 2544 + "name": "track_number", 2545 + "type": "integer", 2546 + "primaryKey": false, 2547 + "notNull": false 2548 + }, 2549 + "duration": { 2550 + "name": "duration", 2551 + "type": "integer", 2552 + "primaryKey": false, 2553 + "notNull": true 2554 + }, 2555 + "mb_id": { 2556 + "name": "mb_id", 2557 + "type": "text", 2558 + "primaryKey": false, 2559 + "notNull": false 2560 + }, 2561 + "youtube_link": { 2562 + "name": "youtube_link", 2563 + "type": "text", 2564 + "primaryKey": false, 2565 + "notNull": false 2566 + }, 2567 + "spotify_link": { 2568 + "name": "spotify_link", 2569 + "type": "text", 2570 + "primaryKey": false, 2571 + "notNull": false 2572 + }, 2573 + "apple_music_link": { 2574 + "name": "apple_music_link", 2575 + "type": "text", 2576 + "primaryKey": false, 2577 + "notNull": false 2578 + }, 2579 + "tidal_link": { 2580 + "name": "tidal_link", 2581 + "type": "text", 2582 + "primaryKey": false, 2583 + "notNull": false 2584 + }, 2585 + "sha256": { 2586 + "name": "sha256", 2587 + "type": "text", 2588 + "primaryKey": false, 2589 + "notNull": true 2590 + }, 2591 + "disc_number": { 2592 + "name": "disc_number", 2593 + "type": "integer", 2594 + "primaryKey": false, 2595 + "notNull": false 2596 + }, 2597 + "lyrics": { 2598 + "name": "lyrics", 2599 + "type": "text", 2600 + "primaryKey": false, 2601 + "notNull": false 2602 + }, 2603 + "composer": { 2604 + "name": "composer", 2605 + "type": "text", 2606 + "primaryKey": false, 2607 + "notNull": false 2608 + }, 2609 + "genre": { 2610 + "name": "genre", 2611 + "type": "text", 2612 + "primaryKey": false, 2613 + "notNull": false 2614 + }, 2615 + "label": { 2616 + "name": "label", 2617 + "type": "text", 2618 + "primaryKey": false, 2619 + "notNull": false 2620 + }, 2621 + "copyright_message": { 2622 + "name": "copyright_message", 2623 + "type": "text", 2624 + "primaryKey": false, 2625 + "notNull": false 2626 + }, 2627 + "uri": { 2628 + "name": "uri", 2629 + "type": "text", 2630 + "primaryKey": false, 2631 + "notNull": false 2632 + }, 2633 + "album_uri": { 2634 + "name": "album_uri", 2635 + "type": "text", 2636 + "primaryKey": false, 2637 + "notNull": false 2638 + }, 2639 + "artist_uri": { 2640 + "name": "artist_uri", 2641 + "type": "text", 2642 + "primaryKey": false, 2643 + "notNull": false 2644 + }, 2645 + "xata_createdat": { 2646 + "name": "xata_createdat", 2647 + "type": "timestamp", 2648 + "primaryKey": false, 2649 + "notNull": true, 2650 + "default": "now()" 2651 + }, 2652 + "xata_updatedat": { 2653 + "name": "xata_updatedat", 2654 + "type": "timestamp", 2655 + "primaryKey": false, 2656 + "notNull": true, 2657 + "default": "now()" 2658 + }, 2659 + "xata_version": { 2660 + "name": "xata_version", 2661 + "type": "integer", 2662 + "primaryKey": false, 2663 + "notNull": false 2664 + } 2665 + }, 2666 + "indexes": {}, 2667 + "foreignKeys": {}, 2668 + "compositePrimaryKeys": {}, 2669 + "uniqueConstraints": { 2670 + "tracks_mb_id_unique": { 2671 + "name": "tracks_mb_id_unique", 2672 + "nullsNotDistinct": false, 2673 + "columns": [ 2674 + "mb_id" 2675 + ] 2676 + }, 2677 + "tracks_youtube_link_unique": { 2678 + "name": "tracks_youtube_link_unique", 2679 + "nullsNotDistinct": false, 2680 + "columns": [ 2681 + "youtube_link" 2682 + ] 2683 + }, 2684 + "tracks_spotify_link_unique": { 2685 + "name": "tracks_spotify_link_unique", 2686 + "nullsNotDistinct": false, 2687 + "columns": [ 2688 + "spotify_link" 2689 + ] 2690 + }, 2691 + "tracks_apple_music_link_unique": { 2692 + "name": "tracks_apple_music_link_unique", 2693 + "nullsNotDistinct": false, 2694 + "columns": [ 2695 + "apple_music_link" 2696 + ] 2697 + }, 2698 + "tracks_tidal_link_unique": { 2699 + "name": "tracks_tidal_link_unique", 2700 + "nullsNotDistinct": false, 2701 + "columns": [ 2702 + "tidal_link" 2703 + ] 2704 + }, 2705 + "tracks_sha256_unique": { 2706 + "name": "tracks_sha256_unique", 2707 + "nullsNotDistinct": false, 2708 + "columns": [ 2709 + "sha256" 2710 + ] 2711 + }, 2712 + "tracks_uri_unique": { 2713 + "name": "tracks_uri_unique", 2714 + "nullsNotDistinct": false, 2715 + "columns": [ 2716 + "uri" 2717 + ] 2718 + } 2719 + }, 2720 + "policies": {}, 2721 + "checkConstraints": {}, 2722 + "isRLSEnabled": false 2723 + }, 2724 + "public.user_albums": { 2725 + "name": "user_albums", 2726 + "schema": "", 2727 + "columns": { 2728 + "xata_id": { 2729 + "name": "xata_id", 2730 + "type": "text", 2731 + "primaryKey": true, 2732 + "notNull": true, 2733 + "default": "xata_id()" 2734 + }, 2735 + "user_id": { 2736 + "name": "user_id", 2737 + "type": "text", 2738 + "primaryKey": false, 2739 + "notNull": true 2740 + }, 2741 + "album_id": { 2742 + "name": "album_id", 2743 + "type": "text", 2744 + "primaryKey": false, 2745 + "notNull": true 2746 + }, 2747 + "xata_createdat": { 2748 + "name": "xata_createdat", 2749 + "type": "timestamp", 2750 + "primaryKey": false, 2751 + "notNull": true, 2752 + "default": "now()" 2753 + }, 2754 + "xata_updatedat": { 2755 + "name": "xata_updatedat", 2756 + "type": "timestamp", 2757 + "primaryKey": false, 2758 + "notNull": true, 2759 + "default": "now()" 2760 + }, 2761 + "xata_version": { 2762 + "name": "xata_version", 2763 + "type": "integer", 2764 + "primaryKey": false, 2765 + "notNull": false 2766 + }, 2767 + "scrobbles": { 2768 + "name": "scrobbles", 2769 + "type": "integer", 2770 + "primaryKey": false, 2771 + "notNull": false 2772 + }, 2773 + "uri": { 2774 + "name": "uri", 2775 + "type": "text", 2776 + "primaryKey": false, 2777 + "notNull": true 2778 + } 2779 + }, 2780 + "indexes": {}, 2781 + "foreignKeys": { 2782 + "user_albums_user_id_users_xata_id_fk": { 2783 + "name": "user_albums_user_id_users_xata_id_fk", 2784 + "tableFrom": "user_albums", 2785 + "tableTo": "users", 2786 + "columnsFrom": [ 2787 + "user_id" 2788 + ], 2789 + "columnsTo": [ 2790 + "xata_id" 2791 + ], 2792 + "onDelete": "no action", 2793 + "onUpdate": "no action" 2794 + }, 2795 + "user_albums_album_id_albums_xata_id_fk": { 2796 + "name": "user_albums_album_id_albums_xata_id_fk", 2797 + "tableFrom": "user_albums", 2798 + "tableTo": "albums", 2799 + "columnsFrom": [ 2800 + "album_id" 2801 + ], 2802 + "columnsTo": [ 2803 + "xata_id" 2804 + ], 2805 + "onDelete": "no action", 2806 + "onUpdate": "no action" 2807 + } 2808 + }, 2809 + "compositePrimaryKeys": {}, 2810 + "uniqueConstraints": { 2811 + "user_albums_uri_unique": { 2812 + "name": "user_albums_uri_unique", 2813 + "nullsNotDistinct": false, 2814 + "columns": [ 2815 + "uri" 2816 + ] 2817 + } 2818 + }, 2819 + "policies": {}, 2820 + "checkConstraints": {}, 2821 + "isRLSEnabled": false 2822 + }, 2823 + "public.user_artists": { 2824 + "name": "user_artists", 2825 + "schema": "", 2826 + "columns": { 2827 + "xata_id": { 2828 + "name": "xata_id", 2829 + "type": "text", 2830 + "primaryKey": true, 2831 + "notNull": true, 2832 + "default": "xata_id()" 2833 + }, 2834 + "user_id": { 2835 + "name": "user_id", 2836 + "type": "text", 2837 + "primaryKey": false, 2838 + "notNull": true 2839 + }, 2840 + "artist_id": { 2841 + "name": "artist_id", 2842 + "type": "text", 2843 + "primaryKey": false, 2844 + "notNull": true 2845 + }, 2846 + "xata_createdat": { 2847 + "name": "xata_createdat", 2848 + "type": "timestamp", 2849 + "primaryKey": false, 2850 + "notNull": true, 2851 + "default": "now()" 2852 + }, 2853 + "xata_updatedat": { 2854 + "name": "xata_updatedat", 2855 + "type": "timestamp", 2856 + "primaryKey": false, 2857 + "notNull": true, 2858 + "default": "now()" 2859 + }, 2860 + "xata_version": { 2861 + "name": "xata_version", 2862 + "type": "integer", 2863 + "primaryKey": false, 2864 + "notNull": false 2865 + }, 2866 + "scrobbles": { 2867 + "name": "scrobbles", 2868 + "type": "integer", 2869 + "primaryKey": false, 2870 + "notNull": false 2871 + }, 2872 + "uri": { 2873 + "name": "uri", 2874 + "type": "text", 2875 + "primaryKey": false, 2876 + "notNull": true 2877 + } 2878 + }, 2879 + "indexes": {}, 2880 + "foreignKeys": { 2881 + "user_artists_user_id_users_xata_id_fk": { 2882 + "name": "user_artists_user_id_users_xata_id_fk", 2883 + "tableFrom": "user_artists", 2884 + "tableTo": "users", 2885 + "columnsFrom": [ 2886 + "user_id" 2887 + ], 2888 + "columnsTo": [ 2889 + "xata_id" 2890 + ], 2891 + "onDelete": "no action", 2892 + "onUpdate": "no action" 2893 + }, 2894 + "user_artists_artist_id_artists_xata_id_fk": { 2895 + "name": "user_artists_artist_id_artists_xata_id_fk", 2896 + "tableFrom": "user_artists", 2897 + "tableTo": "artists", 2898 + "columnsFrom": [ 2899 + "artist_id" 2900 + ], 2901 + "columnsTo": [ 2902 + "xata_id" 2903 + ], 2904 + "onDelete": "no action", 2905 + "onUpdate": "no action" 2906 + } 2907 + }, 2908 + "compositePrimaryKeys": {}, 2909 + "uniqueConstraints": { 2910 + "user_artists_uri_unique": { 2911 + "name": "user_artists_uri_unique", 2912 + "nullsNotDistinct": false, 2913 + "columns": [ 2914 + "uri" 2915 + ] 2916 + } 2917 + }, 2918 + "policies": {}, 2919 + "checkConstraints": {}, 2920 + "isRLSEnabled": false 2921 + }, 2922 + "public.user_playlists": { 2923 + "name": "user_playlists", 2924 + "schema": "", 2925 + "columns": { 2926 + "xata_id": { 2927 + "name": "xata_id", 2928 + "type": "text", 2929 + "primaryKey": true, 2930 + "notNull": true, 2931 + "default": "xata_id()" 2932 + }, 2933 + "user_id": { 2934 + "name": "user_id", 2935 + "type": "text", 2936 + "primaryKey": false, 2937 + "notNull": true 2938 + }, 2939 + "playlist_id": { 2940 + "name": "playlist_id", 2941 + "type": "text", 2942 + "primaryKey": false, 2943 + "notNull": true 2944 + }, 2945 + "xata_createdat": { 2946 + "name": "xata_createdat", 2947 + "type": "timestamp", 2948 + "primaryKey": false, 2949 + "notNull": true, 2950 + "default": "now()" 2951 + }, 2952 + "uri": { 2953 + "name": "uri", 2954 + "type": "text", 2955 + "primaryKey": false, 2956 + "notNull": false 2957 + } 2958 + }, 2959 + "indexes": {}, 2960 + "foreignKeys": { 2961 + "user_playlists_user_id_users_xata_id_fk": { 2962 + "name": "user_playlists_user_id_users_xata_id_fk", 2963 + "tableFrom": "user_playlists", 2964 + "tableTo": "users", 2965 + "columnsFrom": [ 2966 + "user_id" 2967 + ], 2968 + "columnsTo": [ 2969 + "xata_id" 2970 + ], 2971 + "onDelete": "no action", 2972 + "onUpdate": "no action" 2973 + }, 2974 + "user_playlists_playlist_id_playlists_xata_id_fk": { 2975 + "name": "user_playlists_playlist_id_playlists_xata_id_fk", 2976 + "tableFrom": "user_playlists", 2977 + "tableTo": "playlists", 2978 + "columnsFrom": [ 2979 + "playlist_id" 2980 + ], 2981 + "columnsTo": [ 2982 + "xata_id" 2983 + ], 2984 + "onDelete": "no action", 2985 + "onUpdate": "no action" 2986 + } 2987 + }, 2988 + "compositePrimaryKeys": {}, 2989 + "uniqueConstraints": { 2990 + "user_playlists_uri_unique": { 2991 + "name": "user_playlists_uri_unique", 2992 + "nullsNotDistinct": false, 2993 + "columns": [ 2994 + "uri" 2995 + ] 2996 + } 2997 + }, 2998 + "policies": {}, 2999 + "checkConstraints": {}, 3000 + "isRLSEnabled": false 3001 + }, 3002 + "public.user_tracks": { 3003 + "name": "user_tracks", 3004 + "schema": "", 3005 + "columns": { 3006 + "xata_id": { 3007 + "name": "xata_id", 3008 + "type": "text", 3009 + "primaryKey": true, 3010 + "notNull": true, 3011 + "default": "xata_id()" 3012 + }, 3013 + "user_id": { 3014 + "name": "user_id", 3015 + "type": "text", 3016 + "primaryKey": false, 3017 + "notNull": true 3018 + }, 3019 + "track_id": { 3020 + "name": "track_id", 3021 + "type": "text", 3022 + "primaryKey": false, 3023 + "notNull": true 3024 + }, 3025 + "xata_createdat": { 3026 + "name": "xata_createdat", 3027 + "type": "timestamp", 3028 + "primaryKey": false, 3029 + "notNull": true, 3030 + "default": "now()" 3031 + }, 3032 + "xata_updatedat": { 3033 + "name": "xata_updatedat", 3034 + "type": "timestamp", 3035 + "primaryKey": false, 3036 + "notNull": true, 3037 + "default": "now()" 3038 + }, 3039 + "xata_version": { 3040 + "name": "xata_version", 3041 + "type": "integer", 3042 + "primaryKey": false, 3043 + "notNull": false 3044 + }, 3045 + "uri": { 3046 + "name": "uri", 3047 + "type": "text", 3048 + "primaryKey": false, 3049 + "notNull": true 3050 + }, 3051 + "scrobbles": { 3052 + "name": "scrobbles", 3053 + "type": "integer", 3054 + "primaryKey": false, 3055 + "notNull": false 3056 + } 3057 + }, 3058 + "indexes": {}, 3059 + "foreignKeys": { 3060 + "user_tracks_user_id_users_xata_id_fk": { 3061 + "name": "user_tracks_user_id_users_xata_id_fk", 3062 + "tableFrom": "user_tracks", 3063 + "tableTo": "users", 3064 + "columnsFrom": [ 3065 + "user_id" 3066 + ], 3067 + "columnsTo": [ 3068 + "xata_id" 3069 + ], 3070 + "onDelete": "no action", 3071 + "onUpdate": "no action" 3072 + }, 3073 + "user_tracks_track_id_tracks_xata_id_fk": { 3074 + "name": "user_tracks_track_id_tracks_xata_id_fk", 3075 + "tableFrom": "user_tracks", 3076 + "tableTo": "tracks", 3077 + "columnsFrom": [ 3078 + "track_id" 3079 + ], 3080 + "columnsTo": [ 3081 + "xata_id" 3082 + ], 3083 + "onDelete": "no action", 3084 + "onUpdate": "no action" 3085 + } 3086 + }, 3087 + "compositePrimaryKeys": {}, 3088 + "uniqueConstraints": { 3089 + "user_tracks_uri_unique": { 3090 + "name": "user_tracks_uri_unique", 3091 + "nullsNotDistinct": false, 3092 + "columns": [ 3093 + "uri" 3094 + ] 3095 + } 3096 + }, 3097 + "policies": {}, 3098 + "checkConstraints": {}, 3099 + "isRLSEnabled": false 3100 + }, 3101 + "public.users": { 3102 + "name": "users", 3103 + "schema": "", 3104 + "columns": { 3105 + "xata_id": { 3106 + "name": "xata_id", 3107 + "type": "text", 3108 + "primaryKey": true, 3109 + "notNull": true, 3110 + "default": "xata_id()" 3111 + }, 3112 + "did": { 3113 + "name": "did", 3114 + "type": "text", 3115 + "primaryKey": false, 3116 + "notNull": true 3117 + }, 3118 + "display_name": { 3119 + "name": "display_name", 3120 + "type": "text", 3121 + "primaryKey": false, 3122 + "notNull": false 3123 + }, 3124 + "handle": { 3125 + "name": "handle", 3126 + "type": "text", 3127 + "primaryKey": false, 3128 + "notNull": true 3129 + }, 3130 + "avatar": { 3131 + "name": "avatar", 3132 + "type": "text", 3133 + "primaryKey": false, 3134 + "notNull": true 3135 + }, 3136 + "xata_createdat": { 3137 + "name": "xata_createdat", 3138 + "type": "timestamp", 3139 + "primaryKey": false, 3140 + "notNull": true, 3141 + "default": "now()" 3142 + }, 3143 + "xata_updatedat": { 3144 + "name": "xata_updatedat", 3145 + "type": "timestamp", 3146 + "primaryKey": false, 3147 + "notNull": true, 3148 + "default": "now()" 3149 + }, 3150 + "xata_version": { 3151 + "name": "xata_version", 3152 + "type": "integer", 3153 + "primaryKey": false, 3154 + "notNull": false 3155 + } 3156 + }, 3157 + "indexes": {}, 3158 + "foreignKeys": {}, 3159 + "compositePrimaryKeys": {}, 3160 + "uniqueConstraints": { 3161 + "users_did_unique": { 3162 + "name": "users_did_unique", 3163 + "nullsNotDistinct": false, 3164 + "columns": [ 3165 + "did" 3166 + ] 3167 + }, 3168 + "users_handle_unique": { 3169 + "name": "users_handle_unique", 3170 + "nullsNotDistinct": false, 3171 + "columns": [ 3172 + "handle" 3173 + ] 3174 + } 3175 + }, 3176 + "policies": {}, 3177 + "checkConstraints": {}, 3178 + "isRLSEnabled": false 3179 + }, 3180 + "public.webscrobblers": { 3181 + "name": "webscrobblers", 3182 + "schema": "", 3183 + "columns": { 3184 + "xata_id": { 3185 + "name": "xata_id", 3186 + "type": "text", 3187 + "primaryKey": true, 3188 + "notNull": true, 3189 + "default": "xata_id()" 3190 + }, 3191 + "name": { 3192 + "name": "name", 3193 + "type": "text", 3194 + "primaryKey": false, 3195 + "notNull": true 3196 + }, 3197 + "uuid": { 3198 + "name": "uuid", 3199 + "type": "text", 3200 + "primaryKey": false, 3201 + "notNull": true 3202 + }, 3203 + "description": { 3204 + "name": "description", 3205 + "type": "text", 3206 + "primaryKey": false, 3207 + "notNull": false 3208 + }, 3209 + "enabled": { 3210 + "name": "enabled", 3211 + "type": "boolean", 3212 + "primaryKey": false, 3213 + "notNull": true, 3214 + "default": true 3215 + }, 3216 + "user_id": { 3217 + "name": "user_id", 3218 + "type": "text", 3219 + "primaryKey": false, 3220 + "notNull": true 3221 + }, 3222 + "xata_createdat": { 3223 + "name": "xata_createdat", 3224 + "type": "timestamp", 3225 + "primaryKey": false, 3226 + "notNull": true, 3227 + "default": "now()" 3228 + }, 3229 + "xata_updatedat": { 3230 + "name": "xata_updatedat", 3231 + "type": "timestamp", 3232 + "primaryKey": false, 3233 + "notNull": true, 3234 + "default": "now()" 3235 + } 3236 + }, 3237 + "indexes": {}, 3238 + "foreignKeys": { 3239 + "webscrobblers_user_id_users_xata_id_fk": { 3240 + "name": "webscrobblers_user_id_users_xata_id_fk", 3241 + "tableFrom": "webscrobblers", 3242 + "tableTo": "users", 3243 + "columnsFrom": [ 3244 + "user_id" 3245 + ], 3246 + "columnsTo": [ 3247 + "xata_id" 3248 + ], 3249 + "onDelete": "no action", 3250 + "onUpdate": "no action" 3251 + } 3252 + }, 3253 + "compositePrimaryKeys": {}, 3254 + "uniqueConstraints": {}, 3255 + "policies": {}, 3256 + "checkConstraints": {}, 3257 + "isRLSEnabled": false 3258 + } 3259 + }, 3260 + "enums": {}, 3261 + "schemas": {}, 3262 + "sequences": {}, 3263 + "roles": {}, 3264 + "policies": {}, 3265 + "views": {}, 3266 + "_meta": { 3267 + "columns": {}, 3268 + "schemas": {}, 3269 + "tables": {} 3270 + } 3271 + }
+7
apps/api/drizzle/meta/_journal.json
··· 36 36 "when": 1760169551153, 37 37 "tag": "0004_whole_greymalkin", 38 38 "breakpoints": true 39 + }, 40 + { 41 + "idx": 5, 42 + "version": "7", 43 + "when": 1760250369731, 44 + "tag": "0005_parched_thor_girl", 45 + "breakpoints": true 39 46 } 40 47 ] 41 48 }
+1
apps/api/src/schema/feeds.ts
··· 11 11 description: text("description"), 12 12 did: text("did").notNull().unique(), 13 13 uri: text("uri").notNull().unique(), 14 + avatar: text("avatar"), 14 15 userId: text("user_id") 15 16 .notNull() 16 17 .references(() => users.id),
+15
crates/jetstream/src/xata/feed.rs
··· 1 + use chrono::{DateTime, Utc}; 2 + use serde::Deserialize; 3 + 4 + #[derive(Debug, sqlx::FromRow, Deserialize, Clone)] 5 + pub struct Feed { 6 + pub xata_id: String, 7 + pub display_name: String, 8 + pub description: Option<String>, 9 + pub avatar: Option<String>, 10 + pub uri: String, 11 + pub did: String, 12 + pub user_id: String, 13 + #[serde(with = "chrono::serde::ts_seconds")] 14 + pub xata_createdat: DateTime<Utc>, 15 + }
+1
crates/jetstream/src/xata/mod.rs
··· 3 3 pub mod artist; 4 4 pub mod artist_album; 5 5 pub mod artist_track; 6 + pub mod feed; 6 7 pub mod loved_track; 7 8 pub mod scrobble; 8 9 pub mod track;