Files

1180 lines
37 KiB
JSON

[
{
"id": "pbc_app_users",
"listRule": null,
"viewRule": null,
"createRule": null,
"updateRule": null,
"deleteRule": null,
"name": "app_users",
"type": "base",
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text_id_app_users",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"hidden": false,
"id": "text_better_auth_id",
"max": 0,
"min": 0,
"name": "better_auth_id",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": true,
"system": false,
"type": "text"
},
{
"exceptDomains": null,
"hidden": false,
"id": "email_app_users",
"name": "email",
"onlyDomains": null,
"presentable": false,
"required": true,
"system": false,
"type": "email"
},
{
"hidden": false,
"id": "text_app_user_name",
"max": 0,
"min": 0,
"name": "name",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "autodate_app_users_created",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate_app_users_updated",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"indexes": [
"CREATE UNIQUE INDEX `idx_app_users_better_auth_id` ON `app_users` (`better_auth_id`)",
"CREATE UNIQUE INDEX `idx_app_users_email` ON `app_users` (`email`)"
],
"system": false
},
{
"id": "pbc_profiles",
"listRule": null,
"viewRule": null,
"createRule": null,
"updateRule": null,
"deleteRule": null,
"name": "profiles",
"type": "base",
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text_id_profiles",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"cascadeDelete": true,
"collectionId": "pbc_app_users",
"hidden": false,
"id": "rel_profiles_user",
"maxSelect": 1,
"minSelect": 0,
"name": "user",
"presentable": false,
"required": true,
"system": false,
"type": "relation"
},
{
"hidden": false,
"id": "text_profiles_username",
"max": 0,
"min": 0,
"name": "username",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "text_profiles_display",
"max": 0,
"min": 0,
"name": "display_name",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"exceptDomains": null,
"hidden": false,
"id": "url_profiles_avatar",
"name": "avatar_url",
"onlyDomains": null,
"presentable": false,
"required": false,
"system": false,
"type": "url"
},
{
"exceptDomains": null,
"hidden": false,
"id": "url_profiles_banner",
"name": "banner_url",
"onlyDomains": null,
"presentable": false,
"required": false,
"system": false,
"type": "url"
},
{
"hidden": false,
"id": "text_profiles_status",
"max": 0,
"min": 0,
"name": "status",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "text_profiles_about",
"max": 0,
"min": 0,
"name": "about",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"exceptDomains": null,
"hidden": false,
"id": "url_profiles_website",
"name": "website",
"onlyDomains": null,
"presentable": false,
"required": false,
"system": false,
"type": "url"
},
{
"hidden": false,
"id": "select_profiles_privacy_playlists",
"maxSelect": 1,
"name": "privacy_playlists",
"presentable": false,
"required": false,
"system": false,
"type": "select",
"values": ["public", "private"]
},
{
"hidden": false,
"id": "select_profiles_privacy_lastfm",
"maxSelect": 1,
"name": "privacy_lastfm",
"presentable": false,
"required": false,
"system": false,
"type": "select",
"values": ["public", "private"]
},
{
"hidden": false,
"id": "text_profiles_lastfm",
"max": 0,
"min": 0,
"name": "lastfm_username",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "text_profiles_librefm",
"max": 0,
"min": 0,
"name": "librefm_username",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "select_profiles_source",
"maxSelect": 1,
"name": "profile_data_source",
"presentable": false,
"required": false,
"system": false,
"type": "select",
"values": ["manual", "lastfm", "librefm"]
},
{
"hidden": false,
"id": "autodate_profiles_created",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate_profiles_updated",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"indexes": [
"CREATE UNIQUE INDEX `idx_profiles_user` ON `profiles` (`user`)",
"CREATE UNIQUE INDEX `idx_profiles_username` ON `profiles` (`username`) WHERE `username` != ''"
],
"system": false
},
{
"id": "pbc_library_items",
"listRule": null,
"viewRule": null,
"createRule": null,
"updateRule": null,
"deleteRule": null,
"name": "library_items",
"type": "base",
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text_id_library",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"cascadeDelete": true,
"collectionId": "pbc_app_users",
"hidden": false,
"id": "rel_library_owner",
"maxSelect": 1,
"minSelect": 0,
"name": "owner",
"presentable": false,
"required": true,
"system": false,
"type": "relation"
},
{
"hidden": false,
"id": "select_library_type",
"maxSelect": 1,
"name": "item_type",
"presentable": false,
"required": true,
"system": false,
"type": "select",
"values": ["track", "video", "album", "artist", "playlist", "mix"]
},
{
"hidden": false,
"id": "text_library_item_id",
"max": 0,
"min": 0,
"name": "item_id",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": true,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "json_library_metadata",
"maxSize": 0,
"name": "metadata",
"presentable": false,
"required": true,
"system": false,
"type": "json"
},
{
"hidden": false,
"id": "date_library_added",
"max": "",
"min": "",
"name": "added_at",
"presentable": false,
"required": false,
"system": false,
"type": "date"
},
{
"hidden": false,
"id": "autodate_library_created",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate_library_updated",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"indexes": [
"CREATE UNIQUE INDEX `idx_library_owner_type_item` ON `library_items` (`owner`, `item_type`, `item_id`)"
],
"system": false
},
{
"id": "pbc_history_items",
"listRule": null,
"viewRule": null,
"createRule": null,
"updateRule": null,
"deleteRule": null,
"name": "history_items",
"type": "base",
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text_id_history",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"cascadeDelete": true,
"collectionId": "pbc_app_users",
"hidden": false,
"id": "rel_history_owner",
"maxSelect": 1,
"minSelect": 0,
"name": "owner",
"presentable": false,
"required": true,
"system": false,
"type": "relation"
},
{
"hidden": false,
"id": "select_history_type",
"maxSelect": 1,
"name": "item_type",
"presentable": false,
"required": true,
"system": false,
"type": "select",
"values": ["track", "video", "podcast"]
},
{
"hidden": false,
"id": "text_history_item_id",
"max": 0,
"min": 0,
"name": "item_id",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": true,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "json_history_metadata",
"maxSize": 0,
"name": "metadata",
"presentable": false,
"required": true,
"system": false,
"type": "json"
},
{
"hidden": false,
"id": "date_history_played",
"max": "",
"min": "",
"name": "played_at",
"presentable": false,
"required": true,
"system": false,
"type": "date"
},
{
"hidden": false,
"id": "autodate_history_created",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate_history_updated",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"indexes": ["CREATE INDEX `idx_history_owner_played_at` ON `history_items` (`owner`, `played_at` DESC)"],
"system": false
},
{
"id": "pbc_playlists",
"listRule": null,
"viewRule": null,
"createRule": null,
"updateRule": null,
"deleteRule": null,
"name": "playlists",
"type": "base",
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text_id_playlists",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"cascadeDelete": true,
"collectionId": "pbc_app_users",
"hidden": false,
"id": "rel_playlists_owner",
"maxSelect": 1,
"minSelect": 0,
"name": "owner",
"presentable": false,
"required": true,
"system": false,
"type": "relation"
},
{
"hidden": false,
"id": "text_playlists_client_id",
"max": 0,
"min": 0,
"name": "client_id",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "text_playlists_name",
"max": 0,
"min": 0,
"name": "name",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": true,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "text_playlists_description",
"max": 0,
"min": 0,
"name": "description",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"exceptDomains": null,
"hidden": false,
"id": "url_playlists_cover",
"name": "cover_url",
"onlyDomains": null,
"presentable": false,
"required": false,
"system": false,
"type": "url"
},
{
"hidden": false,
"id": "bool_playlists_public",
"name": "is_public",
"presentable": false,
"required": false,
"system": false,
"type": "bool"
},
{
"hidden": false,
"id": "autodate_playlists_created",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate_playlists_updated",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"indexes": [
"CREATE UNIQUE INDEX `idx_playlists_owner_client_id` ON `playlists` (`owner`, `client_id`) WHERE `client_id` != ''",
"CREATE INDEX `idx_playlists_owner_updated` ON `playlists` (`owner`, `updated`)",
"CREATE INDEX `idx_playlists_public_updated` ON `playlists` (`is_public`, `updated`)"
],
"system": false
},
{
"id": "pbc_playlist_tracks",
"listRule": null,
"viewRule": null,
"createRule": null,
"updateRule": null,
"deleteRule": null,
"name": "playlist_tracks",
"type": "base",
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text_id_playlist_tracks",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"cascadeDelete": true,
"collectionId": "pbc_playlists",
"hidden": false,
"id": "rel_tracks_playlist",
"maxSelect": 1,
"minSelect": 0,
"name": "playlist",
"presentable": false,
"required": true,
"system": false,
"type": "relation"
},
{
"hidden": false,
"id": "select_tracks_type",
"maxSelect": 1,
"name": "item_type",
"presentable": false,
"required": true,
"system": false,
"type": "select",
"values": ["track", "video", "podcast"]
},
{
"hidden": false,
"id": "text_tracks_item_id",
"max": 0,
"min": 0,
"name": "item_id",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": true,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "json_tracks_metadata",
"maxSize": 0,
"name": "metadata",
"presentable": false,
"required": true,
"system": false,
"type": "json"
},
{
"hidden": false,
"id": "num_tracks_position",
"max": null,
"min": null,
"name": "position",
"onlyInt": false,
"presentable": false,
"required": true,
"system": false,
"type": "number"
},
{
"hidden": false,
"id": "date_tracks_added",
"max": "",
"min": "",
"name": "added_at",
"presentable": false,
"required": false,
"system": false,
"type": "date"
},
{
"hidden": false,
"id": "autodate_tracks_created",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate_tracks_updated",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"indexes": [
"CREATE UNIQUE INDEX `idx_playlist_tracks_playlist_position` ON `playlist_tracks` (`playlist`, `position`)",
"CREATE INDEX `idx_playlist_tracks_playlist_item` ON `playlist_tracks` (`playlist`, `item_id`)"
],
"system": false
},
{
"id": "pbc_folders",
"listRule": null,
"viewRule": null,
"createRule": null,
"updateRule": null,
"deleteRule": null,
"name": "folders",
"type": "base",
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text_id_folders",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"cascadeDelete": true,
"collectionId": "pbc_app_users",
"hidden": false,
"id": "rel_folders_owner",
"maxSelect": 1,
"minSelect": 0,
"name": "owner",
"presentable": false,
"required": true,
"system": false,
"type": "relation"
},
{
"hidden": false,
"id": "text_folders_client_id",
"max": 0,
"min": 0,
"name": "client_id",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "text_folders_name",
"max": 0,
"min": 0,
"name": "name",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": true,
"system": false,
"type": "text"
},
{
"exceptDomains": null,
"hidden": false,
"id": "url_folders_cover",
"name": "cover_url",
"onlyDomains": null,
"presentable": false,
"required": false,
"system": false,
"type": "url"
},
{
"hidden": false,
"id": "autodate_folders_created",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate_folders_updated",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"indexes": [
"CREATE UNIQUE INDEX `idx_folders_owner_client_id` ON `folders` (`owner`, `client_id`) WHERE `client_id` != ''",
"CREATE INDEX `idx_folders_owner_updated` ON `folders` (`owner`, `updated`)"
],
"system": false
},
{
"id": "pbc_folder_playlists",
"listRule": null,
"viewRule": null,
"createRule": null,
"updateRule": null,
"deleteRule": null,
"name": "folder_playlists",
"type": "base",
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text_id_folder_playlists",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"cascadeDelete": true,
"collectionId": "pbc_folders",
"hidden": false,
"id": "rel_folder_playlists_folder",
"maxSelect": 1,
"minSelect": 0,
"name": "folder",
"presentable": false,
"required": true,
"system": false,
"type": "relation"
},
{
"cascadeDelete": true,
"collectionId": "pbc_playlists",
"hidden": false,
"id": "rel_folder_playlists_playlist",
"maxSelect": 1,
"minSelect": 0,
"name": "playlist",
"presentable": false,
"required": true,
"system": false,
"type": "relation"
},
{
"hidden": false,
"id": "num_folder_playlists_position",
"max": null,
"min": null,
"name": "position",
"onlyInt": false,
"presentable": false,
"required": true,
"system": false,
"type": "number"
},
{
"hidden": false,
"id": "autodate_folder_playlists_created",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate_folder_playlists_updated",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"indexes": [
"CREATE UNIQUE INDEX `idx_folder_playlists_folder_playlist` ON `folder_playlists` (`folder`, `playlist`)",
"CREATE UNIQUE INDEX `idx_folder_playlists_folder_position` ON `folder_playlists` (`folder`, `position`)"
],
"system": false
},
{
"id": "pbc_favorite_albums",
"listRule": null,
"viewRule": null,
"createRule": null,
"updateRule": null,
"deleteRule": null,
"name": "favorite_albums",
"type": "base",
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text_id_favorite_albums",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"cascadeDelete": true,
"collectionId": "pbc_app_users",
"hidden": false,
"id": "rel_favorite_albums_owner",
"maxSelect": 1,
"minSelect": 0,
"name": "owner",
"presentable": false,
"required": true,
"system": false,
"type": "relation"
},
{
"hidden": false,
"id": "text_favorite_album_id",
"max": 0,
"min": 0,
"name": "album_id",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": true,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "json_favorite_albums_metadata",
"maxSize": 0,
"name": "metadata",
"presentable": false,
"required": true,
"system": false,
"type": "json"
},
{
"hidden": false,
"id": "num_favorite_albums_position",
"max": null,
"min": null,
"name": "position",
"onlyInt": false,
"presentable": false,
"required": false,
"system": false,
"type": "number"
},
{
"hidden": false,
"id": "autodate_favorite_albums_created",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate_favorite_albums_updated",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"indexes": ["CREATE UNIQUE INDEX `idx_favorite_albums_owner_album` ON `favorite_albums` (`owner`, `album_id`)"],
"system": false
},
{
"id": "pbc_themes",
"listRule": null,
"viewRule": null,
"createRule": null,
"updateRule": null,
"deleteRule": null,
"name": "themes",
"type": "base",
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text_id_themes",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"cascadeDelete": true,
"collectionId": "pbc_app_users",
"hidden": false,
"id": "rel_themes_author",
"maxSelect": 1,
"minSelect": 0,
"name": "author",
"presentable": false,
"required": true,
"system": false,
"type": "relation"
},
{
"hidden": false,
"id": "text_themes_name",
"max": 0,
"min": 0,
"name": "name",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": true,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "text_themes_description",
"max": 0,
"min": 0,
"name": "description",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "text_themes_css",
"max": 0,
"min": 0,
"name": "css",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": true,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "text_themes_author_snapshot",
"max": 0,
"min": 0,
"name": "author_name_snapshot",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"exceptDomains": null,
"hidden": false,
"id": "url_themes_author_url",
"name": "author_url",
"onlyDomains": null,
"presentable": false,
"required": false,
"system": false,
"type": "url"
},
{
"hidden": false,
"id": "num_themes_installs",
"max": null,
"min": 0,
"name": "installs",
"onlyInt": true,
"presentable": false,
"required": false,
"system": false,
"type": "number"
},
{
"hidden": false,
"id": "autodate_themes_created",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate_themes_updated",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"indexes": ["CREATE INDEX `idx_themes_author_updated` ON `themes` (`author`, `updated`)"],
"system": false
}
]