Files
retivo/apps/server/drizzle/meta/0002_snapshot.json
2026-10-05 20:38:28 +02:00

1483 lines
38 KiB
JSON

{
"id": "8f28cede-375d-4b06-a78c-4cb1a40d019b",
"prevId": "f1d2e229-348e-4f6c-b04d-8e9d9f0e87d4",
"version": "7",
"dialect": "postgresql",
"tables": {
"public.albums": {
"name": "albums",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"title": {
"name": "title",
"type": "text",
"primaryKey": false,
"notNull": true
},
"artist_id": {
"name": "artist_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"mb_release_group_id": {
"name": "mb_release_group_id",
"type": "text",
"primaryKey": false,
"notNull": false
},
"mb_release_id": {
"name": "mb_release_id",
"type": "text",
"primaryKey": false,
"notNull": false
},
"release_date": {
"name": "release_date",
"type": "text",
"primaryKey": false,
"notNull": false
},
"cover_url": {
"name": "cover_url",
"type": "text",
"primaryKey": false,
"notNull": false
},
"metadata": {
"name": "metadata",
"type": "jsonb",
"primaryKey": false,
"notNull": false
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {
"albums_title_idx": {
"name": "albums_title_idx",
"columns": [
{
"expression": "title",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
},
"albums_mb_rg_idx": {
"name": "albums_mb_rg_idx",
"columns": [
{
"expression": "mb_release_group_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": true,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"albums_artist_id_artists_id_fk": {
"name": "albums_artist_id_artists_id_fk",
"tableFrom": "albums",
"tableTo": "artists",
"columnsFrom": [
"artist_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.artist_follows": {
"name": "artist_follows",
"schema": "",
"columns": {
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"artist_id": {
"name": "artist_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {
"artist_follows_user_id_users_id_fk": {
"name": "artist_follows_user_id_users_id_fk",
"tableFrom": "artist_follows",
"tableTo": "users",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"artist_follows_artist_id_artists_id_fk": {
"name": "artist_follows_artist_id_artists_id_fk",
"tableFrom": "artist_follows",
"tableTo": "artists",
"columnsFrom": [
"artist_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"artist_follows_user_id_artist_id_pk": {
"name": "artist_follows_user_id_artist_id_pk",
"columns": [
"user_id",
"artist_id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.artists": {
"name": "artists",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"name": {
"name": "name",
"type": "text",
"primaryKey": false,
"notNull": true
},
"sort_name": {
"name": "sort_name",
"type": "text",
"primaryKey": false,
"notNull": false
},
"mb_artist_id": {
"name": "mb_artist_id",
"type": "text",
"primaryKey": false,
"notNull": false
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"image_url": {
"name": "image_url",
"type": "text",
"primaryKey": false,
"notNull": false
},
"country": {
"name": "country",
"type": "text",
"primaryKey": false,
"notNull": false
},
"metadata": {
"name": "metadata",
"type": "jsonb",
"primaryKey": false,
"notNull": false
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {
"artists_name_idx": {
"name": "artists_name_idx",
"columns": [
{
"expression": "name",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
},
"artists_mb_idx": {
"name": "artists_mb_idx",
"columns": [
{
"expression": "mb_artist_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": true,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.comments": {
"name": "comments",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"track_id": {
"name": "track_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"parent_id": {
"name": "parent_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"body": {
"name": "body",
"type": "text",
"primaryKey": false,
"notNull": true
},
"deleted": {
"name": "deleted",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": false
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {
"comments_track_idx": {
"name": "comments_track_idx",
"columns": [
{
"expression": "track_id",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "created_at",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
},
"comments_parent_idx": {
"name": "comments_parent_idx",
"columns": [
{
"expression": "parent_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"comments_track_id_tracks_id_fk": {
"name": "comments_track_id_tracks_id_fk",
"tableFrom": "comments",
"tableTo": "tracks",
"columnsFrom": [
"track_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"comments_user_id_users_id_fk": {
"name": "comments_user_id_users_id_fk",
"tableFrom": "comments",
"tableTo": "users",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"comments_parent_id_comments_id_fk": {
"name": "comments_parent_id_comments_id_fk",
"tableFrom": "comments",
"tableTo": "comments",
"columnsFrom": [
"parent_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.library_playlists": {
"name": "library_playlists",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"playlist_id": {
"name": "playlist_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"mode": {
"name": "mode",
"type": "library_mode",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'reference'"
},
"copied_playlist_id": {
"name": "copied_playlist_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"can_edit": {
"name": "can_edit",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": false
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {
"library_playlists_uniq": {
"name": "library_playlists_uniq",
"columns": [
{
"expression": "user_id",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "playlist_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": true,
"concurrently": false,
"method": "btree",
"with": {}
},
"library_playlists_user_idx": {
"name": "library_playlists_user_idx",
"columns": [
{
"expression": "user_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"library_playlists_user_id_users_id_fk": {
"name": "library_playlists_user_id_users_id_fk",
"tableFrom": "library_playlists",
"tableTo": "users",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"library_playlists_playlist_id_playlists_id_fk": {
"name": "library_playlists_playlist_id_playlists_id_fk",
"tableFrom": "library_playlists",
"tableTo": "playlists",
"columnsFrom": [
"playlist_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"library_playlists_copied_playlist_id_playlists_id_fk": {
"name": "library_playlists_copied_playlist_id_playlists_id_fk",
"tableFrom": "library_playlists",
"tableTo": "playlists",
"columnsFrom": [
"copied_playlist_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.playlist_collaborators": {
"name": "playlist_collaborators",
"schema": "",
"columns": {
"playlist_id": {
"name": "playlist_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"can_edit": {
"name": "can_edit",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": true
}
},
"indexes": {},
"foreignKeys": {
"playlist_collaborators_playlist_id_playlists_id_fk": {
"name": "playlist_collaborators_playlist_id_playlists_id_fk",
"tableFrom": "playlist_collaborators",
"tableTo": "playlists",
"columnsFrom": [
"playlist_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"playlist_collaborators_user_id_users_id_fk": {
"name": "playlist_collaborators_user_id_users_id_fk",
"tableFrom": "playlist_collaborators",
"tableTo": "users",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"playlist_collaborators_playlist_id_user_id_pk": {
"name": "playlist_collaborators_playlist_id_user_id_pk",
"columns": [
"playlist_id",
"user_id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.playlist_tracks": {
"name": "playlist_tracks",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"playlist_id": {
"name": "playlist_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"track_id": {
"name": "track_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"position": {
"name": "position",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 0
},
"added_by_id": {
"name": "added_by_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {
"playlist_tracks_playlist_idx": {
"name": "playlist_tracks_playlist_idx",
"columns": [
{
"expression": "playlist_id",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "position",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
},
"playlist_tracks_track_idx": {
"name": "playlist_tracks_track_idx",
"columns": [
{
"expression": "track_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"playlist_tracks_playlist_id_playlists_id_fk": {
"name": "playlist_tracks_playlist_id_playlists_id_fk",
"tableFrom": "playlist_tracks",
"tableTo": "playlists",
"columnsFrom": [
"playlist_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"playlist_tracks_track_id_tracks_id_fk": {
"name": "playlist_tracks_track_id_tracks_id_fk",
"tableFrom": "playlist_tracks",
"tableTo": "tracks",
"columnsFrom": [
"track_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"playlist_tracks_added_by_id_users_id_fk": {
"name": "playlist_tracks_added_by_id_users_id_fk",
"tableFrom": "playlist_tracks",
"tableTo": "users",
"columnsFrom": [
"added_by_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.playlists": {
"name": "playlists",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"owner_id": {
"name": "owner_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"title": {
"name": "title",
"type": "text",
"primaryKey": false,
"notNull": true
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"cover_url": {
"name": "cover_url",
"type": "text",
"primaryKey": false,
"notNull": false
},
"visibility": {
"name": "visibility",
"type": "playlist_visibility",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'private'"
},
"is_shareable": {
"name": "is_shareable",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": false
},
"allow_collaborator_edit": {
"name": "allow_collaborator_edit",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": true
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {
"playlists_owner_idx": {
"name": "playlists_owner_idx",
"columns": [
{
"expression": "owner_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
},
"playlists_visibility_idx": {
"name": "playlists_visibility_idx",
"columns": [
{
"expression": "visibility",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"playlists_owner_id_users_id_fk": {
"name": "playlists_owner_id_users_id_fk",
"tableFrom": "playlists",
"tableTo": "users",
"columnsFrom": [
"owner_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.track_artists": {
"name": "track_artists",
"schema": "",
"columns": {
"track_id": {
"name": "track_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"artist_id": {
"name": "artist_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"position": {
"name": "position",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 0
},
"role": {
"name": "role",
"type": "text",
"primaryKey": false,
"notNull": true,
"default": "'main'"
}
},
"indexes": {
"track_artists_artist_idx": {
"name": "track_artists_artist_idx",
"columns": [
{
"expression": "artist_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"track_artists_track_id_tracks_id_fk": {
"name": "track_artists_track_id_tracks_id_fk",
"tableFrom": "track_artists",
"tableTo": "tracks",
"columnsFrom": [
"track_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"track_artists_artist_id_artists_id_fk": {
"name": "track_artists_artist_id_artists_id_fk",
"tableFrom": "track_artists",
"tableTo": "artists",
"columnsFrom": [
"artist_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"track_artists_track_id_artist_id_pk": {
"name": "track_artists_track_id_artist_id_pk",
"columns": [
"track_id",
"artist_id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.track_likes": {
"name": "track_likes",
"schema": "",
"columns": {
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"track_id": {
"name": "track_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {
"track_likes_user_id_users_id_fk": {
"name": "track_likes_user_id_users_id_fk",
"tableFrom": "track_likes",
"tableTo": "users",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"track_likes_track_id_tracks_id_fk": {
"name": "track_likes_track_id_tracks_id_fk",
"tableFrom": "track_likes",
"tableTo": "tracks",
"columnsFrom": [
"track_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"track_likes_user_id_track_id_pk": {
"name": "track_likes_user_id_track_id_pk",
"columns": [
"user_id",
"track_id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.tracks": {
"name": "tracks",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"title": {
"name": "title",
"type": "text",
"primaryKey": false,
"notNull": true
},
"artist_id": {
"name": "artist_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"album_id": {
"name": "album_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"duration_ms": {
"name": "duration_ms",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"track_number": {
"name": "track_number",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"disc_number": {
"name": "disc_number",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"release_date": {
"name": "release_date",
"type": "text",
"primaryKey": false,
"notNull": false
},
"lyrics_plain": {
"name": "lyrics_plain",
"type": "text",
"primaryKey": false,
"notNull": false
},
"lyrics_synced": {
"name": "lyrics_synced",
"type": "jsonb",
"primaryKey": false,
"notNull": false
},
"lyrics_source": {
"name": "lyrics_source",
"type": "text",
"primaryKey": false,
"notNull": false
},
"file_key": {
"name": "file_key",
"type": "text",
"primaryKey": false,
"notNull": true
},
"file_size": {
"name": "file_size",
"type": "bigint",
"primaryKey": false,
"notNull": false
},
"mime_type": {
"name": "mime_type",
"type": "text",
"primaryKey": false,
"notNull": false
},
"uploaded_by_id": {
"name": "uploaded_by_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"status": {
"name": "status",
"type": "track_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'pending'"
},
"rejection_reason": {
"name": "rejection_reason",
"type": "text",
"primaryKey": false,
"notNull": false
},
"fingerprint": {
"name": "fingerprint",
"type": "text",
"primaryKey": false,
"notNull": false
},
"mb_recording_id": {
"name": "mb_recording_id",
"type": "text",
"primaryKey": false,
"notNull": false
},
"cover_url": {
"name": "cover_url",
"type": "text",
"primaryKey": false,
"notNull": false
},
"play_count": {
"name": "play_count",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 0
},
"metadata": {
"name": "metadata",
"type": "jsonb",
"primaryKey": false,
"notNull": false
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"approved_at": {
"name": "approved_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
}
},
"indexes": {
"tracks_status_idx": {
"name": "tracks_status_idx",
"columns": [
{
"expression": "status",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
},
"tracks_title_idx": {
"name": "tracks_title_idx",
"columns": [
{
"expression": "title",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
},
"tracks_uploader_idx": {
"name": "tracks_uploader_idx",
"columns": [
{
"expression": "uploaded_by_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
},
"tracks_mb_recording_idx": {
"name": "tracks_mb_recording_idx",
"columns": [
{
"expression": "mb_recording_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"tracks_artist_id_artists_id_fk": {
"name": "tracks_artist_id_artists_id_fk",
"tableFrom": "tracks",
"tableTo": "artists",
"columnsFrom": [
"artist_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
},
"tracks_album_id_albums_id_fk": {
"name": "tracks_album_id_albums_id_fk",
"tableFrom": "tracks",
"tableTo": "albums",
"columnsFrom": [
"album_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
},
"tracks_uploaded_by_id_users_id_fk": {
"name": "tracks_uploaded_by_id_users_id_fk",
"tableFrom": "tracks",
"tableTo": "users",
"columnsFrom": [
"uploaded_by_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.users": {
"name": "users",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"email": {
"name": "email",
"type": "text",
"primaryKey": false,
"notNull": true
},
"username": {
"name": "username",
"type": "text",
"primaryKey": false,
"notNull": true
},
"display_name": {
"name": "display_name",
"type": "text",
"primaryKey": false,
"notNull": false
},
"password_hash": {
"name": "password_hash",
"type": "text",
"primaryKey": false,
"notNull": true
},
"avatar_url": {
"name": "avatar_url",
"type": "text",
"primaryKey": false,
"notNull": false
},
"bio": {
"name": "bio",
"type": "text",
"primaryKey": false,
"notNull": false
},
"is_super_admin": {
"name": "is_super_admin",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": false
},
"permissions": {
"name": "permissions",
"type": "jsonb",
"primaryKey": false,
"notNull": true,
"default": "'{\"canCreatePlaylists\":true,\"canUploadTracks\":true,\"canAutoApprove\":false,\"canModerate\":false,\"canManageUsers\":false,\"canManageLibrary\":false,\"canViewAllPlaylists\":false}'::jsonb"
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {
"users_email_idx": {
"name": "users_email_idx",
"columns": [
{
"expression": "lower(\"email\")",
"asc": true,
"isExpression": true,
"nulls": "last"
}
],
"isUnique": true,
"concurrently": false,
"method": "btree",
"with": {}
},
"users_username_idx": {
"name": "users_username_idx",
"columns": [
{
"expression": "lower(\"username\")",
"asc": true,
"isExpression": true,
"nulls": "last"
}
],
"isUnique": true,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
}
},
"enums": {
"public.library_mode": {
"name": "library_mode",
"schema": "public",
"values": [
"reference",
"copy"
]
},
"public.playlist_visibility": {
"name": "playlist_visibility",
"schema": "public",
"values": [
"public",
"unlisted",
"private"
]
},
"public.track_status": {
"name": "track_status",
"schema": "public",
"values": [
"pending",
"approved",
"rejected"
]
}
},
"schemas": {},
"sequences": {},
"roles": {},
"policies": {},
"views": {},
"_meta": {
"columns": {},
"schemas": {},
"tables": {}
}
}