{
  "formatVersion": 1,
  "database": {
    "version": 1,
    "identityHash": "5d8a5f2a676148b233470aedd5d05cee",
    "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": "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, 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
          }
        ],
        "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, PRIMARY KEY(`session_id`, `position`), 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
          }
        ],
        "primaryKey": {
          "autoGenerate": false,
          "columnNames": [
            "session_id",
            "position"
          ]
        },
        "indices": [
          {
            "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, PRIMARY KEY(`session_id`, `position`), 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
          }
        ],
        "primaryKey": {
          "autoGenerate": false,
          "columnNames": [
            "session_id",
            "position"
          ]
        },
        "indices": [
          {
            "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, '5d8a5f2a676148b233470aedd5d05cee')"
    ]
  }
}