{ "formatVersion": 1, "database": { "version": 3, "identityHash": "ee4ee00d93e490d2188e3db46058f8e9", "entities": [ { "tableName": "settings", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`key` TEXT NOT NULL, `value` TEXT NOT NULL, PRIMARY KEY(`key`))", "fields": [ { "fieldPath": "key", "columnName": "key", "affinity": "TEXT", "notNull": true }, { "fieldPath": "value", "columnName": "value", "affinity": "TEXT", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "key" ] } }, { "tableName": "folders", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `tree_uri` TEXT NOT NULL, `display_name` TEXT NOT NULL, `added_at` INTEGER NOT NULL, `last_scanned_at` INTEGER, `last_scan_status` TEXT NOT NULL, `last_scan_error` TEXT)", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "treeUri", "columnName": "tree_uri", "affinity": "TEXT", "notNull": true }, { "fieldPath": "displayName", "columnName": "display_name", "affinity": "TEXT", "notNull": true }, { "fieldPath": "addedAt", "columnName": "added_at", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "lastScannedAt", "columnName": "last_scanned_at", "affinity": "INTEGER" }, { "fieldPath": "lastScanStatus", "columnName": "last_scan_status", "affinity": "TEXT", "notNull": true }, { "fieldPath": "lastScanError", "columnName": "last_scan_error", "affinity": "TEXT" } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "id" ] }, "indices": [ { "name": "index_folders_tree_uri", "unique": true, "columnNames": [ "tree_uri" ], "orders": [], "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_folders_tree_uri` ON `${TABLE_NAME}` (`tree_uri`)" } ] }, { "tableName": "playlists", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT NOT NULL, `created_at` INTEGER NOT NULL, `updated_at` INTEGER NOT NULL, `last_played_at` INTEGER, `kind` TEXT NOT NULL, `dynamic_rules_json` TEXT, `remote_source_id` INTEGER, `remote_playlist_id` TEXT, `sync_uid` TEXT)", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "name", "columnName": "name", "affinity": "TEXT", "notNull": true }, { "fieldPath": "createdAt", "columnName": "created_at", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "updatedAt", "columnName": "updated_at", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "lastPlayedAt", "columnName": "last_played_at", "affinity": "INTEGER" }, { "fieldPath": "kind", "columnName": "kind", "affinity": "TEXT", "notNull": true }, { "fieldPath": "dynamicRulesJson", "columnName": "dynamic_rules_json", "affinity": "TEXT" }, { "fieldPath": "remoteSourceId", "columnName": "remote_source_id", "affinity": "INTEGER" }, { "fieldPath": "remotePlaylistId", "columnName": "remote_playlist_id", "affinity": "TEXT" }, { "fieldPath": "syncUid", "columnName": "sync_uid", "affinity": "TEXT" } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "id" ] }, "indices": [ { "name": "index_playlists_sync_uid", "unique": true, "columnNames": [ "sync_uid" ], "orders": [], "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_playlists_sync_uid` ON `${TABLE_NAME}` (`sync_uid`)" }, { "name": "index_playlists_remote_source_id_remote_playlist_id", "unique": true, "columnNames": [ "remote_source_id", "remote_playlist_id" ], "orders": [], "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_playlists_remote_source_id_remote_playlist_id` ON `${TABLE_NAME}` (`remote_source_id`, `remote_playlist_id`)" }, { "name": "index_playlists_kind", "unique": false, "columnNames": [ "kind" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_playlists_kind` ON `${TABLE_NAME}` (`kind`)" } ] }, { "tableName": "playlist_tracks", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `playlist_id` INTEGER NOT NULL, `track_path` TEXT NOT NULL, `position` INTEGER NOT NULL, `added_at` INTEGER NOT NULL, `fallback_title` TEXT, `fallback_artist` TEXT, `fallback_album` TEXT, FOREIGN KEY(`playlist_id`) REFERENCES `playlists`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "playlistId", "columnName": "playlist_id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "trackPath", "columnName": "track_path", "affinity": "TEXT", "notNull": true }, { "fieldPath": "position", "columnName": "position", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "addedAt", "columnName": "added_at", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "fallbackTitle", "columnName": "fallback_title", "affinity": "TEXT" }, { "fieldPath": "fallbackArtist", "columnName": "fallback_artist", "affinity": "TEXT" }, { "fieldPath": "fallbackAlbum", "columnName": "fallback_album", "affinity": "TEXT" } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "id" ] }, "indices": [ { "name": "index_playlist_tracks_playlist_id_position", "unique": false, "columnNames": [ "playlist_id", "position" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_playlist_tracks_playlist_id_position` ON `${TABLE_NAME}` (`playlist_id`, `position`)" }, { "name": "index_playlist_tracks_playlist_id_track_path", "unique": true, "columnNames": [ "playlist_id", "track_path" ], "orders": [], "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_playlist_tracks_playlist_id_track_path` ON `${TABLE_NAME}` (`playlist_id`, `track_path`)" } ], "foreignKeys": [ { "table": "playlists", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "playlist_id" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "favorites", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`track_path` TEXT NOT NULL, `added_at` INTEGER NOT NULL, PRIMARY KEY(`track_path`))", "fields": [ { "fieldPath": "trackPath", "columnName": "track_path", "affinity": "TEXT", "notNull": true }, { "fieldPath": "addedAt", "columnName": "added_at", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "track_path" ] } }, { "tableName": "playback_history", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`track_path` TEXT NOT NULL, `last_played_at` INTEGER NOT NULL, `play_count` INTEGER NOT NULL, PRIMARY KEY(`track_path`))", "fields": [ { "fieldPath": "trackPath", "columnName": "track_path", "affinity": "TEXT", "notNull": true }, { "fieldPath": "lastPlayedAt", "columnName": "last_played_at", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "playCount", "columnName": "play_count", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "track_path" ] }, "indices": [ { "name": "index_playback_history_last_played_at", "unique": false, "columnNames": [ "last_played_at" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_playback_history_last_played_at` ON `${TABLE_NAME}` (`last_played_at`)" } ] }, { "tableName": "listening_history_meta", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `generation` TEXT NOT NULL, `started_at` INTEGER, PRIMARY KEY(`id`))", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "generation", "columnName": "generation", "affinity": "TEXT", "notNull": true }, { "fieldPath": "startedAt", "columnName": "started_at", "affinity": "INTEGER" } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "id" ] } }, { "tableName": "listening_sessions", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`session_key` TEXT NOT NULL, `generation` TEXT NOT NULL, `track_path` TEXT NOT NULL, `title` TEXT NOT NULL, `artist` TEXT NOT NULL, `artist_names_json` TEXT, `album` TEXT NOT NULL, `album_artist` TEXT, `album_artist_names_json` TEXT, `album_identity_key` TEXT NOT NULL, `artwork_hash` TEXT, `source_type` TEXT NOT NULL, `source_id` INTEGER, `artwork_source_id` TEXT, `duration_seconds` REAL NOT NULL, `started_at` INTEGER NOT NULL, `ended_at` INTEGER, `listened_seconds` REAL NOT NULL, `qualified_at` INTEGER, PRIMARY KEY(`session_key`))", "fields": [ { "fieldPath": "sessionKey", "columnName": "session_key", "affinity": "TEXT", "notNull": true }, { "fieldPath": "generation", "columnName": "generation", "affinity": "TEXT", "notNull": true }, { "fieldPath": "trackPath", "columnName": "track_path", "affinity": "TEXT", "notNull": true }, { "fieldPath": "title", "columnName": "title", "affinity": "TEXT", "notNull": true }, { "fieldPath": "artist", "columnName": "artist", "affinity": "TEXT", "notNull": true }, { "fieldPath": "artistNamesJson", "columnName": "artist_names_json", "affinity": "TEXT" }, { "fieldPath": "album", "columnName": "album", "affinity": "TEXT", "notNull": true }, { "fieldPath": "albumArtist", "columnName": "album_artist", "affinity": "TEXT" }, { "fieldPath": "albumArtistNamesJson", "columnName": "album_artist_names_json", "affinity": "TEXT" }, { "fieldPath": "albumIdentityKey", "columnName": "album_identity_key", "affinity": "TEXT", "notNull": true }, { "fieldPath": "artworkHash", "columnName": "artwork_hash", "affinity": "TEXT" }, { "fieldPath": "sourceType", "columnName": "source_type", "affinity": "TEXT", "notNull": true }, { "fieldPath": "sourceId", "columnName": "source_id", "affinity": "INTEGER" }, { "fieldPath": "artworkSourceId", "columnName": "artwork_source_id", "affinity": "TEXT" }, { "fieldPath": "durationSeconds", "columnName": "duration_seconds", "affinity": "REAL", "notNull": true }, { "fieldPath": "startedAt", "columnName": "started_at", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "endedAt", "columnName": "ended_at", "affinity": "INTEGER" }, { "fieldPath": "listenedSeconds", "columnName": "listened_seconds", "affinity": "REAL", "notNull": true }, { "fieldPath": "qualifiedAt", "columnName": "qualified_at", "affinity": "INTEGER" } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "session_key" ] }, "indices": [ { "name": "index_listening_sessions_generation_started_at", "unique": false, "columnNames": [ "generation", "started_at" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_listening_sessions_generation_started_at` ON `${TABLE_NAME}` (`generation`, `started_at`)" }, { "name": "index_listening_sessions_generation_qualified_at", "unique": false, "columnNames": [ "generation", "qualified_at" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_listening_sessions_generation_qualified_at` ON `${TABLE_NAME}` (`generation`, `qualified_at`)" }, { "name": "index_listening_sessions_track_path", "unique": false, "columnNames": [ "track_path" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_listening_sessions_track_path` ON `${TABLE_NAME}` (`track_path`)" } ] }, { "tableName": "listening_segments", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`session_key` TEXT NOT NULL, `segment_key` TEXT NOT NULL, `generation` TEXT NOT NULL, `started_at` INTEGER NOT NULL, `last_observed_at` INTEGER NOT NULL, `ended_at` INTEGER, `listened_seconds` REAL NOT NULL, PRIMARY KEY(`session_key`, `segment_key`), FOREIGN KEY(`session_key`) REFERENCES `listening_sessions`(`session_key`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "sessionKey", "columnName": "session_key", "affinity": "TEXT", "notNull": true }, { "fieldPath": "segmentKey", "columnName": "segment_key", "affinity": "TEXT", "notNull": true }, { "fieldPath": "generation", "columnName": "generation", "affinity": "TEXT", "notNull": true }, { "fieldPath": "startedAt", "columnName": "started_at", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "lastObservedAt", "columnName": "last_observed_at", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "endedAt", "columnName": "ended_at", "affinity": "INTEGER" }, { "fieldPath": "listenedSeconds", "columnName": "listened_seconds", "affinity": "REAL", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "session_key", "segment_key" ] }, "indices": [ { "name": "index_listening_segments_generation_started_at_last_observed_at", "unique": false, "columnNames": [ "generation", "started_at", "last_observed_at" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_listening_segments_generation_started_at_last_observed_at` ON `${TABLE_NAME}` (`generation`, `started_at`, `last_observed_at`)" }, { "name": "index_listening_segments_session_key", "unique": false, "columnNames": [ "session_key" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_listening_segments_session_key` ON `${TABLE_NAME}` (`session_key`)" } ], "foreignKeys": [ { "table": "listening_sessions", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "session_key" ], "referencedColumns": [ "session_key" ] } ] }, { "tableName": "remote_sources", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `type` TEXT NOT NULL, `name` TEXT NOT NULL, `base_url` TEXT NOT NULL, `username` TEXT NOT NULL, `enabled` INTEGER NOT NULL, `last_status` TEXT NOT NULL, `last_error` TEXT, `last_sync_at` INTEGER, `last_checked_at` INTEGER, `created_at` INTEGER NOT NULL, `updated_at` INTEGER NOT NULL)", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "type", "columnName": "type", "affinity": "TEXT", "notNull": true }, { "fieldPath": "name", "columnName": "name", "affinity": "TEXT", "notNull": true }, { "fieldPath": "baseUrl", "columnName": "base_url", "affinity": "TEXT", "notNull": true }, { "fieldPath": "username", "columnName": "username", "affinity": "TEXT", "notNull": true }, { "fieldPath": "enabled", "columnName": "enabled", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "lastStatus", "columnName": "last_status", "affinity": "TEXT", "notNull": true }, { "fieldPath": "lastError", "columnName": "last_error", "affinity": "TEXT" }, { "fieldPath": "lastSyncAt", "columnName": "last_sync_at", "affinity": "INTEGER" }, { "fieldPath": "lastCheckedAt", "columnName": "last_checked_at", "affinity": "INTEGER" }, { "fieldPath": "createdAt", "columnName": "created_at", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "updatedAt", "columnName": "updated_at", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "id" ] }, "indices": [ { "name": "index_remote_sources_type_name", "unique": false, "columnNames": [ "type", "name" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_remote_sources_type_name` ON `${TABLE_NAME}` (`type`, `name`)" } ] }, { "tableName": "favorite_tombstones", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`sync_key` TEXT NOT NULL, `deleted_at` INTEGER NOT NULL, PRIMARY KEY(`sync_key`))", "fields": [ { "fieldPath": "syncKey", "columnName": "sync_key", "affinity": "TEXT", "notNull": true }, { "fieldPath": "deletedAt", "columnName": "deleted_at", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "sync_key" ] } }, { "tableName": "favorite_sync_pending", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`sync_key` TEXT NOT NULL, `title` TEXT NOT NULL, `artist` TEXT NOT NULL, `album` TEXT NOT NULL, `added_at` INTEGER NOT NULL, PRIMARY KEY(`sync_key`))", "fields": [ { "fieldPath": "syncKey", "columnName": "sync_key", "affinity": "TEXT", "notNull": true }, { "fieldPath": "title", "columnName": "title", "affinity": "TEXT", "notNull": true }, { "fieldPath": "artist", "columnName": "artist", "affinity": "TEXT", "notNull": true }, { "fieldPath": "album", "columnName": "album", "affinity": "TEXT", "notNull": true }, { "fieldPath": "addedAt", "columnName": "added_at", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "sync_key" ] } }, { "tableName": "playlist_tombstones", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`sync_uid` TEXT NOT NULL, `deleted_at` INTEGER NOT NULL, PRIMARY KEY(`sync_uid`))", "fields": [ { "fieldPath": "syncUid", "columnName": "sync_uid", "affinity": "TEXT", "notNull": true }, { "fieldPath": "deletedAt", "columnName": "deleted_at", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "sync_uid" ] } }, { "tableName": "playlist_sync_state", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`sync_uid` TEXT NOT NULL, `local_updated_at` INTEGER NOT NULL, `remote_updated_at` INTEGER NOT NULL, PRIMARY KEY(`sync_uid`))", "fields": [ { "fieldPath": "syncUid", "columnName": "sync_uid", "affinity": "TEXT", "notNull": true }, { "fieldPath": "localUpdatedAt", "columnName": "local_updated_at", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "remoteUpdatedAt", "columnName": "remote_updated_at", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "sync_uid" ] } }, { "tableName": "playback_sessions", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `context_json` TEXT NOT NULL, `anchor_path` TEXT, `shuffle_seed` INTEGER, `active_position` INTEGER NOT NULL, `created_at` INTEGER NOT NULL, `updated_at` INTEGER NOT NULL, `queue_revision` INTEGER NOT NULL, `catalog_revision` INTEGER, `is_dirty` INTEGER NOT NULL, `next_entry_id` INTEGER NOT NULL, PRIMARY KEY(`id`))", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "TEXT", "notNull": true }, { "fieldPath": "contextJson", "columnName": "context_json", "affinity": "TEXT", "notNull": true }, { "fieldPath": "anchorPath", "columnName": "anchor_path", "affinity": "TEXT" }, { "fieldPath": "shuffleSeed", "columnName": "shuffle_seed", "affinity": "INTEGER" }, { "fieldPath": "activePosition", "columnName": "active_position", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "createdAt", "columnName": "created_at", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "updatedAt", "columnName": "updated_at", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "queueRevision", "columnName": "queue_revision", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "catalogRevision", "columnName": "catalog_revision", "affinity": "INTEGER" }, { "fieldPath": "isDirty", "columnName": "is_dirty", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "nextEntryId", "columnName": "next_entry_id", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "id" ] } }, { "tableName": "playback_queue_entries", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`session_id` TEXT NOT NULL, `position` INTEGER NOT NULL, `track_path` TEXT NOT NULL, `entry_id` INTEGER NOT NULL, PRIMARY KEY(`session_id`, `entry_id`), FOREIGN KEY(`session_id`) REFERENCES `playback_sessions`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "sessionId", "columnName": "session_id", "affinity": "TEXT", "notNull": true }, { "fieldPath": "position", "columnName": "position", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "trackPath", "columnName": "track_path", "affinity": "TEXT", "notNull": true }, { "fieldPath": "entryId", "columnName": "entry_id", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "session_id", "entry_id" ] }, "indices": [ { "name": "index_playback_queue_entries_session_id_position", "unique": true, "columnNames": [ "session_id", "position" ], "orders": [], "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_playback_queue_entries_session_id_position` ON `${TABLE_NAME}` (`session_id`, `position`)" }, { "name": "index_playback_queue_entries_session_id_track_path", "unique": false, "columnNames": [ "session_id", "track_path" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_playback_queue_entries_session_id_track_path` ON `${TABLE_NAME}` (`session_id`, `track_path`)" } ], "foreignKeys": [ { "table": "playback_sessions", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "session_id" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "playback_original_queue_entries", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`session_id` TEXT NOT NULL, `position` INTEGER NOT NULL, `track_path` TEXT NOT NULL, `entry_id` INTEGER NOT NULL, PRIMARY KEY(`session_id`, `entry_id`), FOREIGN KEY(`session_id`) REFERENCES `playback_sessions`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "sessionId", "columnName": "session_id", "affinity": "TEXT", "notNull": true }, { "fieldPath": "position", "columnName": "position", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "trackPath", "columnName": "track_path", "affinity": "TEXT", "notNull": true }, { "fieldPath": "entryId", "columnName": "entry_id", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "session_id", "entry_id" ] }, "indices": [ { "name": "index_playback_original_queue_entries_session_id_position", "unique": true, "columnNames": [ "session_id", "position" ], "orders": [], "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_playback_original_queue_entries_session_id_position` ON `${TABLE_NAME}` (`session_id`, `position`)" }, { "name": "index_playback_original_queue_entries_session_id_track_path", "unique": false, "columnNames": [ "session_id", "track_path" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_playback_original_queue_entries_session_id_track_path` ON `${TABLE_NAME}` (`session_id`, `track_path`)" } ], "foreignKeys": [ { "table": "playback_sessions", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "session_id" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "snapshot_metadata", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `last_snapshot_at` INTEGER NOT NULL, PRIMARY KEY(`id`))", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "lastSnapshotAt", "columnName": "last_snapshot_at", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "id" ] } } ], "setupQueries": [ "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'ee4ee00d93e490d2188e3db46058f8e9')" ] } }