{
  "formatVersion": 1,
  "database": {
    "version": 4,
    "identityHash": "55a757cfaa70d7e240ef719680f48d09",
    "entities": [
      {
        "tableName": "providers",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT NOT NULL, `type` TEXT NOT NULL, `server_url` TEXT NOT NULL, `username` TEXT NOT NULL, `password` TEXT NOT NULL, `m3u_url` TEXT NOT NULL, `epg_url` TEXT NOT NULL, `is_active` INTEGER NOT NULL, `max_connections` INTEGER NOT NULL, `expiration_date` INTEGER, `status` TEXT NOT NULL, `last_synced_at` INTEGER NOT NULL, `created_at` INTEGER NOT NULL)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "name",
            "columnName": "name",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "type",
            "columnName": "type",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "serverUrl",
            "columnName": "server_url",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "username",
            "columnName": "username",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "password",
            "columnName": "password",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "m3uUrl",
            "columnName": "m3u_url",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "epgUrl",
            "columnName": "epg_url",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "isActive",
            "columnName": "is_active",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "maxConnections",
            "columnName": "max_connections",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "expirationDate",
            "columnName": "expiration_date",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "status",
            "columnName": "status",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "lastSyncedAt",
            "columnName": "last_synced_at",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "createdAt",
            "columnName": "created_at",
            "affinity": "INTEGER",
            "notNull": true
          }
        ],
        "primaryKey": {
          "autoGenerate": true,
          "columnNames": [
            "id"
          ]
        },
        "indices": [
          {
            "name": "index_providers_server_url_username",
            "unique": true,
            "columnNames": [
              "server_url",
              "username"
            ],
            "orders": [],
            "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_providers_server_url_username` ON `${TABLE_NAME}` (`server_url`, `username`)"
          }
        ],
        "foreignKeys": []
      },
      {
        "tableName": "channels",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `stream_id` INTEGER NOT NULL, `name` TEXT NOT NULL, `logo_url` TEXT, `group_title` TEXT, `category_id` INTEGER, `category_name` TEXT, `stream_url` TEXT NOT NULL, `epg_channel_id` TEXT, `number` INTEGER NOT NULL, `catch_up_supported` INTEGER NOT NULL, `catch_up_days` INTEGER NOT NULL, `catchUpSource` TEXT, `provider_id` INTEGER NOT NULL, `is_adult` INTEGER NOT NULL, `is_user_protected` INTEGER NOT NULL)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "streamId",
            "columnName": "stream_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "name",
            "columnName": "name",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "logoUrl",
            "columnName": "logo_url",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "groupTitle",
            "columnName": "group_title",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "categoryId",
            "columnName": "category_id",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "categoryName",
            "columnName": "category_name",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "streamUrl",
            "columnName": "stream_url",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "epgChannelId",
            "columnName": "epg_channel_id",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "number",
            "columnName": "number",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "catchUpSupported",
            "columnName": "catch_up_supported",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "catchUpDays",
            "columnName": "catch_up_days",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "catchUpSource",
            "columnName": "catchUpSource",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "providerId",
            "columnName": "provider_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "isAdult",
            "columnName": "is_adult",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "isUserProtected",
            "columnName": "is_user_protected",
            "affinity": "INTEGER",
            "notNull": true
          }
        ],
        "primaryKey": {
          "autoGenerate": true,
          "columnNames": [
            "id"
          ]
        },
        "indices": [
          {
            "name": "index_channels_provider_id",
            "unique": false,
            "columnNames": [
              "provider_id"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_channels_provider_id` ON `${TABLE_NAME}` (`provider_id`)"
          },
          {
            "name": "index_channels_category_id",
            "unique": false,
            "columnNames": [
              "category_id"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_channels_category_id` ON `${TABLE_NAME}` (`category_id`)"
          },
          {
            "name": "index_channels_provider_id_stream_id",
            "unique": true,
            "columnNames": [
              "provider_id",
              "stream_id"
            ],
            "orders": [],
            "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_channels_provider_id_stream_id` ON `${TABLE_NAME}` (`provider_id`, `stream_id`)"
          }
        ],
        "foreignKeys": []
      },
      {
        "tableName": "movies",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `stream_id` INTEGER NOT NULL, `name` TEXT NOT NULL, `poster_url` TEXT, `backdrop_url` TEXT, `category_id` INTEGER, `category_name` TEXT, `stream_url` TEXT NOT NULL, `container_extension` TEXT, `plot` TEXT, `cast` TEXT, `director` TEXT, `genre` TEXT, `release_date` TEXT, `duration` TEXT, `duration_seconds` INTEGER NOT NULL, `rating` REAL NOT NULL, `year` TEXT, `tmdb_id` INTEGER, `youtube_trailer` TEXT, `provider_id` INTEGER NOT NULL, `watch_progress` INTEGER NOT NULL, `last_watched_at` INTEGER NOT NULL, `is_adult` INTEGER NOT NULL, `is_user_protected` INTEGER NOT NULL)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "streamId",
            "columnName": "stream_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "name",
            "columnName": "name",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "posterUrl",
            "columnName": "poster_url",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "backdropUrl",
            "columnName": "backdrop_url",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "categoryId",
            "columnName": "category_id",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "categoryName",
            "columnName": "category_name",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "streamUrl",
            "columnName": "stream_url",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "containerExtension",
            "columnName": "container_extension",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "plot",
            "columnName": "plot",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "cast",
            "columnName": "cast",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "director",
            "columnName": "director",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "genre",
            "columnName": "genre",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "releaseDate",
            "columnName": "release_date",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "duration",
            "columnName": "duration",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "durationSeconds",
            "columnName": "duration_seconds",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "rating",
            "columnName": "rating",
            "affinity": "REAL",
            "notNull": true
          },
          {
            "fieldPath": "year",
            "columnName": "year",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "tmdbId",
            "columnName": "tmdb_id",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "youtubeTrailer",
            "columnName": "youtube_trailer",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "providerId",
            "columnName": "provider_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "watchProgress",
            "columnName": "watch_progress",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "lastWatchedAt",
            "columnName": "last_watched_at",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "isAdult",
            "columnName": "is_adult",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "isUserProtected",
            "columnName": "is_user_protected",
            "affinity": "INTEGER",
            "notNull": true
          }
        ],
        "primaryKey": {
          "autoGenerate": true,
          "columnNames": [
            "id"
          ]
        },
        "indices": [
          {
            "name": "index_movies_provider_id",
            "unique": false,
            "columnNames": [
              "provider_id"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_movies_provider_id` ON `${TABLE_NAME}` (`provider_id`)"
          },
          {
            "name": "index_movies_category_id",
            "unique": false,
            "columnNames": [
              "category_id"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_movies_category_id` ON `${TABLE_NAME}` (`category_id`)"
          },
          {
            "name": "index_movies_provider_id_stream_id",
            "unique": true,
            "columnNames": [
              "provider_id",
              "stream_id"
            ],
            "orders": [],
            "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_movies_provider_id_stream_id` ON `${TABLE_NAME}` (`provider_id`, `stream_id`)"
          }
        ],
        "foreignKeys": []
      },
      {
        "tableName": "series",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `series_id` INTEGER NOT NULL, `name` TEXT NOT NULL, `poster_url` TEXT, `backdrop_url` TEXT, `category_id` INTEGER, `category_name` TEXT, `plot` TEXT, `cast` TEXT, `director` TEXT, `genre` TEXT, `release_date` TEXT, `rating` REAL NOT NULL, `tmdb_id` INTEGER, `youtube_trailer` TEXT, `episode_run_time` TEXT, `last_modified` INTEGER NOT NULL, `provider_id` INTEGER NOT NULL, `is_adult` INTEGER NOT NULL, `is_user_protected` INTEGER NOT NULL)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "seriesId",
            "columnName": "series_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "name",
            "columnName": "name",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "posterUrl",
            "columnName": "poster_url",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "backdropUrl",
            "columnName": "backdrop_url",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "categoryId",
            "columnName": "category_id",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "categoryName",
            "columnName": "category_name",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "plot",
            "columnName": "plot",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "cast",
            "columnName": "cast",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "director",
            "columnName": "director",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "genre",
            "columnName": "genre",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "releaseDate",
            "columnName": "release_date",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "rating",
            "columnName": "rating",
            "affinity": "REAL",
            "notNull": true
          },
          {
            "fieldPath": "tmdbId",
            "columnName": "tmdb_id",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "youtubeTrailer",
            "columnName": "youtube_trailer",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "episodeRunTime",
            "columnName": "episode_run_time",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "lastModified",
            "columnName": "last_modified",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "providerId",
            "columnName": "provider_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "isAdult",
            "columnName": "is_adult",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "isUserProtected",
            "columnName": "is_user_protected",
            "affinity": "INTEGER",
            "notNull": true
          }
        ],
        "primaryKey": {
          "autoGenerate": true,
          "columnNames": [
            "id"
          ]
        },
        "indices": [
          {
            "name": "index_series_provider_id",
            "unique": false,
            "columnNames": [
              "provider_id"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_series_provider_id` ON `${TABLE_NAME}` (`provider_id`)"
          },
          {
            "name": "index_series_category_id",
            "unique": false,
            "columnNames": [
              "category_id"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_series_category_id` ON `${TABLE_NAME}` (`category_id`)"
          },
          {
            "name": "index_series_provider_id_series_id",
            "unique": true,
            "columnNames": [
              "provider_id",
              "series_id"
            ],
            "orders": [],
            "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_series_provider_id_series_id` ON `${TABLE_NAME}` (`provider_id`, `series_id`)"
          }
        ],
        "foreignKeys": []
      },
      {
        "tableName": "episodes",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `episode_id` INTEGER NOT NULL, `title` TEXT NOT NULL, `episode_number` INTEGER NOT NULL, `season_number` INTEGER NOT NULL, `stream_url` TEXT NOT NULL, `container_extension` TEXT, `cover_url` TEXT, `plot` TEXT, `duration` TEXT, `duration_seconds` INTEGER NOT NULL, `rating` REAL NOT NULL, `release_date` TEXT, `series_id` INTEGER NOT NULL, `provider_id` INTEGER NOT NULL, `watch_progress` INTEGER NOT NULL, `last_watched_at` INTEGER NOT NULL, `is_adult` INTEGER NOT NULL, `is_user_protected` INTEGER NOT NULL)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "episodeId",
            "columnName": "episode_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "title",
            "columnName": "title",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "episodeNumber",
            "columnName": "episode_number",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "seasonNumber",
            "columnName": "season_number",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "streamUrl",
            "columnName": "stream_url",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "containerExtension",
            "columnName": "container_extension",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "coverUrl",
            "columnName": "cover_url",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "plot",
            "columnName": "plot",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "duration",
            "columnName": "duration",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "durationSeconds",
            "columnName": "duration_seconds",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "rating",
            "columnName": "rating",
            "affinity": "REAL",
            "notNull": true
          },
          {
            "fieldPath": "releaseDate",
            "columnName": "release_date",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "seriesId",
            "columnName": "series_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "providerId",
            "columnName": "provider_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "watchProgress",
            "columnName": "watch_progress",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "lastWatchedAt",
            "columnName": "last_watched_at",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "isAdult",
            "columnName": "is_adult",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "isUserProtected",
            "columnName": "is_user_protected",
            "affinity": "INTEGER",
            "notNull": true
          }
        ],
        "primaryKey": {
          "autoGenerate": true,
          "columnNames": [
            "id"
          ]
        },
        "indices": [
          {
            "name": "index_episodes_series_id",
            "unique": false,
            "columnNames": [
              "series_id"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_episodes_series_id` ON `${TABLE_NAME}` (`series_id`)"
          },
          {
            "name": "index_episodes_provider_id",
            "unique": false,
            "columnNames": [
              "provider_id"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_episodes_provider_id` ON `${TABLE_NAME}` (`provider_id`)"
          },
          {
            "name": "index_episodes_provider_id_episode_id",
            "unique": true,
            "columnNames": [
              "provider_id",
              "episode_id"
            ],
            "orders": [],
            "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_episodes_provider_id_episode_id` ON `${TABLE_NAME}` (`provider_id`, `episode_id`)"
          }
        ],
        "foreignKeys": []
      },
      {
        "tableName": "categories",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `category_id` INTEGER NOT NULL, `name` TEXT NOT NULL, `parent_id` INTEGER, `type` TEXT NOT NULL, `provider_id` INTEGER NOT NULL, `is_adult` INTEGER NOT NULL, `is_user_protected` INTEGER NOT NULL)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "categoryId",
            "columnName": "category_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "name",
            "columnName": "name",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "parentId",
            "columnName": "parent_id",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "type",
            "columnName": "type",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "providerId",
            "columnName": "provider_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "isAdult",
            "columnName": "is_adult",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "isUserProtected",
            "columnName": "is_user_protected",
            "affinity": "INTEGER",
            "notNull": true
          }
        ],
        "primaryKey": {
          "autoGenerate": true,
          "columnNames": [
            "id"
          ]
        },
        "indices": [
          {
            "name": "index_categories_provider_id",
            "unique": false,
            "columnNames": [
              "provider_id"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_categories_provider_id` ON `${TABLE_NAME}` (`provider_id`)"
          },
          {
            "name": "index_categories_provider_id_category_id_type",
            "unique": true,
            "columnNames": [
              "provider_id",
              "category_id",
              "type"
            ],
            "orders": [],
            "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_categories_provider_id_category_id_type` ON `${TABLE_NAME}` (`provider_id`, `category_id`, `type`)"
          }
        ],
        "foreignKeys": []
      },
      {
        "tableName": "programs",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `channel_id` TEXT NOT NULL, `title` TEXT NOT NULL, `description` TEXT NOT NULL, `start_time` INTEGER NOT NULL, `end_time` INTEGER NOT NULL, `lang` TEXT NOT NULL, `has_archive` INTEGER NOT NULL)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "channelId",
            "columnName": "channel_id",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "title",
            "columnName": "title",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "description",
            "columnName": "description",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "startTime",
            "columnName": "start_time",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "endTime",
            "columnName": "end_time",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "lang",
            "columnName": "lang",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "hasArchive",
            "columnName": "has_archive",
            "affinity": "INTEGER",
            "notNull": true
          }
        ],
        "primaryKey": {
          "autoGenerate": true,
          "columnNames": [
            "id"
          ]
        },
        "indices": [
          {
            "name": "index_programs_channel_id",
            "unique": false,
            "columnNames": [
              "channel_id"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_programs_channel_id` ON `${TABLE_NAME}` (`channel_id`)"
          },
          {
            "name": "index_programs_start_time",
            "unique": false,
            "columnNames": [
              "start_time"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_programs_start_time` ON `${TABLE_NAME}` (`start_time`)"
          },
          {
            "name": "index_programs_channel_id_start_time",
            "unique": false,
            "columnNames": [
              "channel_id",
              "start_time"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_programs_channel_id_start_time` ON `${TABLE_NAME}` (`channel_id`, `start_time`)"
          }
        ],
        "foreignKeys": []
      },
      {
        "tableName": "favorites",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `content_id` INTEGER NOT NULL, `content_type` TEXT NOT NULL, `position` INTEGER NOT NULL, `group_id` INTEGER, `added_at` INTEGER NOT NULL)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "contentId",
            "columnName": "content_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "contentType",
            "columnName": "content_type",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "position",
            "columnName": "position",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "groupId",
            "columnName": "group_id",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "addedAt",
            "columnName": "added_at",
            "affinity": "INTEGER",
            "notNull": true
          }
        ],
        "primaryKey": {
          "autoGenerate": true,
          "columnNames": [
            "id"
          ]
        },
        "indices": [
          {
            "name": "index_favorites_content_id_content_type_group_id",
            "unique": true,
            "columnNames": [
              "content_id",
              "content_type",
              "group_id"
            ],
            "orders": [],
            "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_favorites_content_id_content_type_group_id` ON `${TABLE_NAME}` (`content_id`, `content_type`, `group_id`)"
          },
          {
            "name": "index_favorites_group_id",
            "unique": false,
            "columnNames": [
              "group_id"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_favorites_group_id` ON `${TABLE_NAME}` (`group_id`)"
          },
          {
            "name": "index_favorites_position",
            "unique": false,
            "columnNames": [
              "position"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_favorites_position` ON `${TABLE_NAME}` (`position`)"
          }
        ],
        "foreignKeys": []
      },
      {
        "tableName": "virtual_groups",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT NOT NULL, `icon_emoji` TEXT, `position` INTEGER NOT NULL, `created_at` INTEGER NOT NULL)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "name",
            "columnName": "name",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "iconEmoji",
            "columnName": "icon_emoji",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "position",
            "columnName": "position",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "createdAt",
            "columnName": "created_at",
            "affinity": "INTEGER",
            "notNull": true
          }
        ],
        "primaryKey": {
          "autoGenerate": true,
          "columnNames": [
            "id"
          ]
        },
        "indices": [
          {
            "name": "index_virtual_groups_position",
            "unique": false,
            "columnNames": [
              "position"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_virtual_groups_position` ON `${TABLE_NAME}` (`position`)"
          }
        ],
        "foreignKeys": []
      },
      {
        "tableName": "playback_history",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `content_id` INTEGER NOT NULL, `content_type` TEXT NOT NULL, `provider_id` INTEGER NOT NULL, `title` TEXT NOT NULL, `poster_url` TEXT, `stream_url` TEXT NOT NULL, `resume_position_ms` INTEGER NOT NULL, `total_duration_ms` INTEGER NOT NULL, `last_watched_at` INTEGER NOT NULL, `watch_count` INTEGER NOT NULL, `series_id` INTEGER, `season_number` INTEGER, `episode_number` INTEGER)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "contentId",
            "columnName": "content_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "contentType",
            "columnName": "content_type",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "providerId",
            "columnName": "provider_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "title",
            "columnName": "title",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "posterUrl",
            "columnName": "poster_url",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "streamUrl",
            "columnName": "stream_url",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "resumePositionMs",
            "columnName": "resume_position_ms",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "totalDurationMs",
            "columnName": "total_duration_ms",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "lastWatchedAt",
            "columnName": "last_watched_at",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "watchCount",
            "columnName": "watch_count",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "seriesId",
            "columnName": "series_id",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "seasonNumber",
            "columnName": "season_number",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "episodeNumber",
            "columnName": "episode_number",
            "affinity": "INTEGER",
            "notNull": false
          }
        ],
        "primaryKey": {
          "autoGenerate": true,
          "columnNames": [
            "id"
          ]
        },
        "indices": [
          {
            "name": "index_playback_history_content_id_content_type_provider_id",
            "unique": true,
            "columnNames": [
              "content_id",
              "content_type",
              "provider_id"
            ],
            "orders": [],
            "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_playback_history_content_id_content_type_provider_id` ON `${TABLE_NAME}` (`content_id`, `content_type`, `provider_id`)"
          },
          {
            "name": "index_playback_history_last_watched_at",
            "unique": false,
            "columnNames": [
              "last_watched_at"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_playback_history_last_watched_at` ON `${TABLE_NAME}` (`last_watched_at`)"
          },
          {
            "name": "index_playback_history_provider_id",
            "unique": false,
            "columnNames": [
              "provider_id"
            ],
            "orders": [],
            "createSql": "CREATE INDEX IF NOT EXISTS `index_playback_history_provider_id` ON `${TABLE_NAME}` (`provider_id`)"
          }
        ],
        "foreignKeys": []
      },
      {
        "tableName": "sync_metadata",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`provider_id` INTEGER NOT NULL, `last_live_sync` INTEGER NOT NULL, `last_movie_sync` INTEGER NOT NULL, `last_series_sync` INTEGER NOT NULL, `last_epg_sync` INTEGER NOT NULL, `live_count` INTEGER NOT NULL, `movie_count` INTEGER NOT NULL, `series_count` INTEGER NOT NULL, `epg_count` INTEGER NOT NULL, `last_sync_status` TEXT NOT NULL, PRIMARY KEY(`provider_id`))",
        "fields": [
          {
            "fieldPath": "providerId",
            "columnName": "provider_id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "lastLiveSync",
            "columnName": "last_live_sync",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "lastMovieSync",
            "columnName": "last_movie_sync",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "lastSeriesSync",
            "columnName": "last_series_sync",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "lastEpgSync",
            "columnName": "last_epg_sync",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "liveCount",
            "columnName": "live_count",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "movieCount",
            "columnName": "movie_count",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "seriesCount",
            "columnName": "series_count",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "epgCount",
            "columnName": "epg_count",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "lastSyncStatus",
            "columnName": "last_sync_status",
            "affinity": "TEXT",
            "notNull": true
          }
        ],
        "primaryKey": {
          "autoGenerate": false,
          "columnNames": [
            "provider_id"
          ]
        },
        "indices": [],
        "foreignKeys": []
      }
    ],
    "views": [],
    "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, '55a757cfaa70d7e240ef719680f48d09')"
    ]
  }
}