From 69c0333327d6910ee12cb4ed602e9e1a7bc1aa3e Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Fri, 13 Jun 2025 17:00:59 +0600 Subject: [PATCH] feat: update plugin configuration with more fields --- drift_schemas/app_db/drift_schema_v7.json | 2 +- lib/models/database/database.g.dart | 191 +++++++++++++++++- lib/models/database/database.steps.dart | 20 +- .../database/tables/metadata_plugins.dart | 3 + lib/models/metadata/metadata.freezed.dart | 103 +++++++++- lib/models/metadata/metadata.g.dart | 23 +++ lib/models/metadata/plugin.dart | 7 + .../metadata_plugin_provider.dart | 20 ++ test/drift/app_db/generated/schema_v7.dart | 104 +++++++++- 9 files changed, 452 insertions(+), 21 deletions(-) diff --git a/drift_schemas/app_db/drift_schema_v7.json b/drift_schemas/app_db/drift_schema_v7.json index d42e0b84..4390b550 100644 --- a/drift_schemas/app_db/drift_schema_v7.json +++ b/drift_schemas/app_db/drift_schema_v7.json @@ -1 +1 @@ -{"_meta":{"description":"This file contains a serialized version of schema entities for drift.","version":"1.2.0"},"options":{"store_date_time_values_as_text":false},"entities":[{"id":0,"references":[],"type":"table","data":{"name":"authentication_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"cookie","getter_name":"cookie","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"EncryptedTextConverter()","dart_type_name":"DecryptedText"}},{"name":"access_token","getter_name":"accessToken","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"EncryptedTextConverter()","dart_type_name":"DecryptedText"}},{"name":"expiration","getter_name":"expiration","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":1,"references":[],"type":"table","data":{"name":"blacklist_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"name","getter_name":"name","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"element_type","getter_name":"elementType","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(BlacklistedType.values)","dart_type_name":"BlacklistedType"}},{"name":"element_id","getter_name":"elementId","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":2,"references":[],"type":"table","data":{"name":"preferences_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"audio_quality","getter_name":"audioQuality","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(SourceQualities.high.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(SourceQualities.values)","dart_type_name":"SourceQualities"}},{"name":"album_color_sync","getter_name":"albumColorSync","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"album_color_sync\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"album_color_sync\" IN (0, 1))"},"default_dart":"const Constant(true)","default_client_dart":null,"dsl_features":[]},{"name":"amoled_dark_theme","getter_name":"amoledDarkTheme","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"amoled_dark_theme\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"amoled_dark_theme\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]},{"name":"check_update","getter_name":"checkUpdate","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"check_update\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"check_update\" IN (0, 1))"},"default_dart":"const Constant(true)","default_client_dart":null,"dsl_features":[]},{"name":"normalize_audio","getter_name":"normalizeAudio","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"normalize_audio\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"normalize_audio\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]},{"name":"show_system_tray_icon","getter_name":"showSystemTrayIcon","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"show_system_tray_icon\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"show_system_tray_icon\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]},{"name":"system_title_bar","getter_name":"systemTitleBar","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"system_title_bar\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"system_title_bar\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]},{"name":"skip_non_music","getter_name":"skipNonMusic","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"skip_non_music\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"skip_non_music\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]},{"name":"close_behavior","getter_name":"closeBehavior","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(CloseBehavior.close.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(CloseBehavior.values)","dart_type_name":"CloseBehavior"}},{"name":"accent_color_scheme","getter_name":"accentColorScheme","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"const Constant(\"Orange:0xFFf97315\")","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const SpotubeColorConverter()","dart_type_name":"SpotubeColor"}},{"name":"layout_mode","getter_name":"layoutMode","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(LayoutMode.adaptive.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(LayoutMode.values)","dart_type_name":"LayoutMode"}},{"name":"locale","getter_name":"locale","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"const Constant('{\"languageCode\":\"system\",\"countryCode\":\"system\"}')","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const LocaleConverter()","dart_type_name":"Locale"}},{"name":"market","getter_name":"market","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(Market.US.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(Market.values)","dart_type_name":"Market"}},{"name":"search_mode","getter_name":"searchMode","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(SearchMode.youtube.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(SearchMode.values)","dart_type_name":"SearchMode"}},{"name":"download_location","getter_name":"downloadLocation","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"const Constant(\"\")","default_client_dart":null,"dsl_features":[]},{"name":"local_library_location","getter_name":"localLibraryLocation","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"const Constant(\"\")","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const StringListConverter()","dart_type_name":"List"}},{"name":"piped_instance","getter_name":"pipedInstance","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"const Constant(\"https://pipedapi.kavin.rocks\")","default_client_dart":null,"dsl_features":[]},{"name":"invidious_instance","getter_name":"invidiousInstance","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"const Constant(\"https://inv.nadeko.net\")","default_client_dart":null,"dsl_features":[]},{"name":"theme_mode","getter_name":"themeMode","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(ThemeMode.system.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(ThemeMode.values)","dart_type_name":"ThemeMode"}},{"name":"audio_source","getter_name":"audioSource","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(AudioSource.youtube.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(AudioSource.values)","dart_type_name":"AudioSource"}},{"name":"youtube_client_engine","getter_name":"youtubeClientEngine","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(YoutubeClientEngine.youtubeExplode.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(YoutubeClientEngine.values)","dart_type_name":"YoutubeClientEngine"}},{"name":"stream_music_codec","getter_name":"streamMusicCodec","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(SourceCodecs.weba.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(SourceCodecs.values)","dart_type_name":"SourceCodecs"}},{"name":"download_music_codec","getter_name":"downloadMusicCodec","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(SourceCodecs.m4a.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(SourceCodecs.values)","dart_type_name":"SourceCodecs"}},{"name":"discord_presence","getter_name":"discordPresence","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"discord_presence\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"discord_presence\" IN (0, 1))"},"default_dart":"const Constant(true)","default_client_dart":null,"dsl_features":[]},{"name":"endless_playback","getter_name":"endlessPlayback","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"endless_playback\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"endless_playback\" IN (0, 1))"},"default_dart":"const Constant(true)","default_client_dart":null,"dsl_features":[]},{"name":"enable_connect","getter_name":"enableConnect","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"enable_connect\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"enable_connect\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]},{"name":"connect_port","getter_name":"connectPort","moor_type":"int","nullable":false,"customConstraints":null,"default_dart":"const Constant(-1)","default_client_dart":null,"dsl_features":[]},{"name":"cache_music","getter_name":"cacheMusic","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"cache_music\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"cache_music\" IN (0, 1))"},"default_dart":"const Constant(true)","default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":3,"references":[],"type":"table","data":{"name":"scrobbler_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"created_at","getter_name":"createdAt","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":"currentDateAndTime","default_client_dart":null,"dsl_features":[]},{"name":"username","getter_name":"username","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"password_hash","getter_name":"passwordHash","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"EncryptedTextConverter()","dart_type_name":"DecryptedText"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":4,"references":[],"type":"table","data":{"name":"skip_segment_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"start","getter_name":"start","moor_type":"int","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"end","getter_name":"end","moor_type":"int","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"track_id","getter_name":"trackId","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"created_at","getter_name":"createdAt","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":"currentDateAndTime","default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":5,"references":[],"type":"table","data":{"name":"source_match_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"track_id","getter_name":"trackId","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"source_id","getter_name":"sourceId","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"source_type","getter_name":"sourceType","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(SourceType.youtube.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(SourceType.values)","dart_type_name":"SourceType"}},{"name":"created_at","getter_name":"createdAt","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":"currentDateAndTime","default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":6,"references":[],"type":"table","data":{"name":"audio_player_state_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"playing","getter_name":"playing","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"playing\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"playing\" IN (0, 1))"},"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"loop_mode","getter_name":"loopMode","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(PlaylistMode.values)","dart_type_name":"PlaylistMode"}},{"name":"shuffled","getter_name":"shuffled","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"shuffled\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"shuffled\" IN (0, 1))"},"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"collections","getter_name":"collections","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const StringListConverter()","dart_type_name":"List"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":7,"references":[6],"type":"table","data":{"name":"playlist_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"audio_player_state_id","getter_name":"audioPlayerStateId","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES audio_player_state_table (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES audio_player_state_table (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"index","getter_name":"index","moor_type":"int","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":8,"references":[7],"type":"table","data":{"name":"playlist_media_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"playlist_id","getter_name":"playlistId","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES playlist_table (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES playlist_table (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"uri","getter_name":"uri","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"extras","getter_name":"extras","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const MapTypeConverter()","dart_type_name":"Map"}},{"name":"http_headers","getter_name":"httpHeaders","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const MapTypeConverter()","dart_type_name":"Map"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":9,"references":[],"type":"table","data":{"name":"history_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"created_at","getter_name":"createdAt","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":"currentDateAndTime","default_client_dart":null,"dsl_features":[]},{"name":"type","getter_name":"type","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(HistoryEntryType.values)","dart_type_name":"HistoryEntryType"}},{"name":"item_id","getter_name":"itemId","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"data","getter_name":"data","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const MapTypeConverter()","dart_type_name":"Map"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":10,"references":[],"type":"table","data":{"name":"lyrics_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"track_id","getter_name":"trackId","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"data","getter_name":"data","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"SubtitleTypeConverter()","dart_type_name":"SubtitleSimple"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":11,"references":[],"type":"table","data":{"name":"metadata_plugins_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"name","getter_name":"name","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[{"allowed-lengths":{"min":1,"max":50}}]},{"name":"description","getter_name":"description","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"version","getter_name":"version","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"author","getter_name":"author","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"selected","getter_name":"selected","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"selected\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"selected\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":12,"references":[1],"type":"index","data":{"on":1,"name":"unique_blacklist","sql":null,"unique":true,"columns":["element_type","element_id"]}},{"id":13,"references":[5],"type":"index","data":{"on":5,"name":"uniq_track_match","sql":null,"unique":true,"columns":["track_id","source_id","source_type"]}}]} \ No newline at end of file +{"_meta":{"description":"This file contains a serialized version of schema entities for drift.","version":"1.2.0"},"options":{"store_date_time_values_as_text":false},"entities":[{"id":0,"references":[],"type":"table","data":{"name":"authentication_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"cookie","getter_name":"cookie","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"EncryptedTextConverter()","dart_type_name":"DecryptedText"}},{"name":"access_token","getter_name":"accessToken","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"EncryptedTextConverter()","dart_type_name":"DecryptedText"}},{"name":"expiration","getter_name":"expiration","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":1,"references":[],"type":"table","data":{"name":"blacklist_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"name","getter_name":"name","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"element_type","getter_name":"elementType","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(BlacklistedType.values)","dart_type_name":"BlacklistedType"}},{"name":"element_id","getter_name":"elementId","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":2,"references":[],"type":"table","data":{"name":"preferences_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"audio_quality","getter_name":"audioQuality","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(SourceQualities.high.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(SourceQualities.values)","dart_type_name":"SourceQualities"}},{"name":"album_color_sync","getter_name":"albumColorSync","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"album_color_sync\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"album_color_sync\" IN (0, 1))"},"default_dart":"const Constant(true)","default_client_dart":null,"dsl_features":[]},{"name":"amoled_dark_theme","getter_name":"amoledDarkTheme","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"amoled_dark_theme\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"amoled_dark_theme\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]},{"name":"check_update","getter_name":"checkUpdate","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"check_update\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"check_update\" IN (0, 1))"},"default_dart":"const Constant(true)","default_client_dart":null,"dsl_features":[]},{"name":"normalize_audio","getter_name":"normalizeAudio","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"normalize_audio\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"normalize_audio\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]},{"name":"show_system_tray_icon","getter_name":"showSystemTrayIcon","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"show_system_tray_icon\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"show_system_tray_icon\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]},{"name":"system_title_bar","getter_name":"systemTitleBar","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"system_title_bar\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"system_title_bar\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]},{"name":"skip_non_music","getter_name":"skipNonMusic","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"skip_non_music\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"skip_non_music\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]},{"name":"close_behavior","getter_name":"closeBehavior","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(CloseBehavior.close.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(CloseBehavior.values)","dart_type_name":"CloseBehavior"}},{"name":"accent_color_scheme","getter_name":"accentColorScheme","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"const Constant(\"Orange:0xFFf97315\")","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const SpotubeColorConverter()","dart_type_name":"SpotubeColor"}},{"name":"layout_mode","getter_name":"layoutMode","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(LayoutMode.adaptive.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(LayoutMode.values)","dart_type_name":"LayoutMode"}},{"name":"locale","getter_name":"locale","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"const Constant('{\"languageCode\":\"system\",\"countryCode\":\"system\"}')","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const LocaleConverter()","dart_type_name":"Locale"}},{"name":"market","getter_name":"market","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(Market.US.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(Market.values)","dart_type_name":"Market"}},{"name":"search_mode","getter_name":"searchMode","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(SearchMode.youtube.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(SearchMode.values)","dart_type_name":"SearchMode"}},{"name":"download_location","getter_name":"downloadLocation","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"const Constant(\"\")","default_client_dart":null,"dsl_features":[]},{"name":"local_library_location","getter_name":"localLibraryLocation","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"const Constant(\"\")","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const StringListConverter()","dart_type_name":"List"}},{"name":"piped_instance","getter_name":"pipedInstance","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"const Constant(\"https://pipedapi.kavin.rocks\")","default_client_dart":null,"dsl_features":[]},{"name":"invidious_instance","getter_name":"invidiousInstance","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"const Constant(\"https://inv.nadeko.net\")","default_client_dart":null,"dsl_features":[]},{"name":"theme_mode","getter_name":"themeMode","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(ThemeMode.system.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(ThemeMode.values)","dart_type_name":"ThemeMode"}},{"name":"audio_source","getter_name":"audioSource","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(AudioSource.youtube.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(AudioSource.values)","dart_type_name":"AudioSource"}},{"name":"youtube_client_engine","getter_name":"youtubeClientEngine","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(YoutubeClientEngine.youtubeExplode.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(YoutubeClientEngine.values)","dart_type_name":"YoutubeClientEngine"}},{"name":"stream_music_codec","getter_name":"streamMusicCodec","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(SourceCodecs.weba.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(SourceCodecs.values)","dart_type_name":"SourceCodecs"}},{"name":"download_music_codec","getter_name":"downloadMusicCodec","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(SourceCodecs.m4a.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(SourceCodecs.values)","dart_type_name":"SourceCodecs"}},{"name":"discord_presence","getter_name":"discordPresence","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"discord_presence\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"discord_presence\" IN (0, 1))"},"default_dart":"const Constant(true)","default_client_dart":null,"dsl_features":[]},{"name":"endless_playback","getter_name":"endlessPlayback","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"endless_playback\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"endless_playback\" IN (0, 1))"},"default_dart":"const Constant(true)","default_client_dart":null,"dsl_features":[]},{"name":"enable_connect","getter_name":"enableConnect","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"enable_connect\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"enable_connect\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]},{"name":"connect_port","getter_name":"connectPort","moor_type":"int","nullable":false,"customConstraints":null,"default_dart":"const Constant(-1)","default_client_dart":null,"dsl_features":[]},{"name":"cache_music","getter_name":"cacheMusic","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"cache_music\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"cache_music\" IN (0, 1))"},"default_dart":"const Constant(true)","default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":3,"references":[],"type":"table","data":{"name":"scrobbler_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"created_at","getter_name":"createdAt","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":"currentDateAndTime","default_client_dart":null,"dsl_features":[]},{"name":"username","getter_name":"username","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"password_hash","getter_name":"passwordHash","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"EncryptedTextConverter()","dart_type_name":"DecryptedText"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":4,"references":[],"type":"table","data":{"name":"skip_segment_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"start","getter_name":"start","moor_type":"int","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"end","getter_name":"end","moor_type":"int","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"track_id","getter_name":"trackId","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"created_at","getter_name":"createdAt","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":"currentDateAndTime","default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":5,"references":[],"type":"table","data":{"name":"source_match_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"track_id","getter_name":"trackId","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"source_id","getter_name":"sourceId","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"source_type","getter_name":"sourceType","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"Constant(SourceType.youtube.name)","default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(SourceType.values)","dart_type_name":"SourceType"}},{"name":"created_at","getter_name":"createdAt","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":"currentDateAndTime","default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":6,"references":[],"type":"table","data":{"name":"audio_player_state_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"playing","getter_name":"playing","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"playing\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"playing\" IN (0, 1))"},"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"loop_mode","getter_name":"loopMode","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(PlaylistMode.values)","dart_type_name":"PlaylistMode"}},{"name":"shuffled","getter_name":"shuffled","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"shuffled\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"shuffled\" IN (0, 1))"},"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"collections","getter_name":"collections","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const StringListConverter()","dart_type_name":"List"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":7,"references":[6],"type":"table","data":{"name":"playlist_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"audio_player_state_id","getter_name":"audioPlayerStateId","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES audio_player_state_table (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES audio_player_state_table (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"index","getter_name":"index","moor_type":"int","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":8,"references":[7],"type":"table","data":{"name":"playlist_media_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"playlist_id","getter_name":"playlistId","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES playlist_table (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES playlist_table (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"uri","getter_name":"uri","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"extras","getter_name":"extras","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const MapTypeConverter()","dart_type_name":"Map"}},{"name":"http_headers","getter_name":"httpHeaders","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const MapTypeConverter()","dart_type_name":"Map"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":9,"references":[],"type":"table","data":{"name":"history_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"created_at","getter_name":"createdAt","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":"currentDateAndTime","default_client_dart":null,"dsl_features":[]},{"name":"type","getter_name":"type","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumNameConverter(HistoryEntryType.values)","dart_type_name":"HistoryEntryType"}},{"name":"item_id","getter_name":"itemId","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"data","getter_name":"data","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const MapTypeConverter()","dart_type_name":"Map"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":10,"references":[],"type":"table","data":{"name":"lyrics_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"track_id","getter_name":"trackId","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"data","getter_name":"data","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"SubtitleTypeConverter()","dart_type_name":"SubtitleSimple"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":11,"references":[],"type":"table","data":{"name":"metadata_plugins_table","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"name","getter_name":"name","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[{"allowed-lengths":{"min":1,"max":50}}]},{"name":"description","getter_name":"description","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"version","getter_name":"version","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"author","getter_name":"author","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"entry_point","getter_name":"entryPoint","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"apis","getter_name":"apis","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const StringListConverter()","dart_type_name":"List"}},{"name":"abilities","getter_name":"abilities","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const StringListConverter()","dart_type_name":"List"}},{"name":"selected","getter_name":"selected","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"selected\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"selected\" IN (0, 1))"},"default_dart":"const Constant(false)","default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":12,"references":[1],"type":"index","data":{"on":1,"name":"unique_blacklist","sql":null,"unique":true,"columns":["element_type","element_id"]}},{"id":13,"references":[5],"type":"index","data":{"on":5,"name":"uniq_track_match","sql":null,"unique":true,"columns":["track_id","source_id","source_type"]}}]} \ No newline at end of file diff --git a/lib/models/database/database.g.dart b/lib/models/database/database.g.dart index 210e8d49..02f75640 100644 --- a/lib/models/database/database.g.dart +++ b/lib/models/database/database.g.dart @@ -4315,6 +4315,27 @@ class $MetadataPluginsTableTable extends MetadataPluginsTable late final GeneratedColumn author = GeneratedColumn( 'author', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _entryPointMeta = + const VerificationMeta('entryPoint'); + @override + late final GeneratedColumn entryPoint = GeneratedColumn( + 'entry_point', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _apisMeta = const VerificationMeta('apis'); + @override + late final GeneratedColumnWithTypeConverter, String> apis = + GeneratedColumn('apis', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true) + .withConverter>( + $MetadataPluginsTableTable.$converterapis); + static const VerificationMeta _abilitiesMeta = + const VerificationMeta('abilities'); + @override + late final GeneratedColumnWithTypeConverter, String> abilities = + GeneratedColumn('abilities', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true) + .withConverter>( + $MetadataPluginsTableTable.$converterabilities); static const VerificationMeta _selectedMeta = const VerificationMeta('selected'); @override @@ -4326,8 +4347,17 @@ class $MetadataPluginsTableTable extends MetadataPluginsTable GeneratedColumn.constraintIsAlways('CHECK ("selected" IN (0, 1))'), defaultValue: const Constant(false)); @override - List get $columns => - [id, name, description, version, author, selected]; + List get $columns => [ + id, + name, + description, + version, + author, + entryPoint, + apis, + abilities, + selected + ]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -4368,6 +4398,16 @@ class $MetadataPluginsTableTable extends MetadataPluginsTable } else if (isInserting) { context.missing(_authorMeta); } + if (data.containsKey('entry_point')) { + context.handle( + _entryPointMeta, + entryPoint.isAcceptableOrUnknown( + data['entry_point']!, _entryPointMeta)); + } else if (isInserting) { + context.missing(_entryPointMeta); + } + context.handle(_apisMeta, const VerificationResult.success()); + context.handle(_abilitiesMeta, const VerificationResult.success()); if (data.containsKey('selected')) { context.handle(_selectedMeta, selected.isAcceptableOrUnknown(data['selected']!, _selectedMeta)); @@ -4392,6 +4432,14 @@ class $MetadataPluginsTableTable extends MetadataPluginsTable .read(DriftSqlType.string, data['${effectivePrefix}version'])!, author: attachedDatabase.typeMapping .read(DriftSqlType.string, data['${effectivePrefix}author'])!, + entryPoint: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}entry_point'])!, + apis: $MetadataPluginsTableTable.$converterapis.fromSql(attachedDatabase + .typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}apis'])!), + abilities: $MetadataPluginsTableTable.$converterabilities.fromSql( + attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}abilities'])!), selected: attachedDatabase.typeMapping .read(DriftSqlType.bool, data['${effectivePrefix}selected'])!, ); @@ -4401,6 +4449,11 @@ class $MetadataPluginsTableTable extends MetadataPluginsTable $MetadataPluginsTableTable createAlias(String alias) { return $MetadataPluginsTableTable(attachedDatabase, alias); } + + static TypeConverter, String> $converterapis = + const StringListConverter(); + static TypeConverter, String> $converterabilities = + const StringListConverter(); } class MetadataPluginsTableData extends DataClass @@ -4410,6 +4463,9 @@ class MetadataPluginsTableData extends DataClass final String description; final String version; final String author; + final String entryPoint; + final List apis; + final List abilities; final bool selected; const MetadataPluginsTableData( {required this.id, @@ -4417,6 +4473,9 @@ class MetadataPluginsTableData extends DataClass required this.description, required this.version, required this.author, + required this.entryPoint, + required this.apis, + required this.abilities, required this.selected}); @override Map toColumns(bool nullToAbsent) { @@ -4426,6 +4485,15 @@ class MetadataPluginsTableData extends DataClass map['description'] = Variable(description); map['version'] = Variable(version); map['author'] = Variable(author); + map['entry_point'] = Variable(entryPoint); + { + map['apis'] = Variable( + $MetadataPluginsTableTable.$converterapis.toSql(apis)); + } + { + map['abilities'] = Variable( + $MetadataPluginsTableTable.$converterabilities.toSql(abilities)); + } map['selected'] = Variable(selected); return map; } @@ -4437,6 +4505,9 @@ class MetadataPluginsTableData extends DataClass description: Value(description), version: Value(version), author: Value(author), + entryPoint: Value(entryPoint), + apis: Value(apis), + abilities: Value(abilities), selected: Value(selected), ); } @@ -4450,6 +4521,9 @@ class MetadataPluginsTableData extends DataClass description: serializer.fromJson(json['description']), version: serializer.fromJson(json['version']), author: serializer.fromJson(json['author']), + entryPoint: serializer.fromJson(json['entryPoint']), + apis: serializer.fromJson>(json['apis']), + abilities: serializer.fromJson>(json['abilities']), selected: serializer.fromJson(json['selected']), ); } @@ -4462,6 +4536,9 @@ class MetadataPluginsTableData extends DataClass 'description': serializer.toJson(description), 'version': serializer.toJson(version), 'author': serializer.toJson(author), + 'entryPoint': serializer.toJson(entryPoint), + 'apis': serializer.toJson>(apis), + 'abilities': serializer.toJson>(abilities), 'selected': serializer.toJson(selected), }; } @@ -4472,6 +4549,9 @@ class MetadataPluginsTableData extends DataClass String? description, String? version, String? author, + String? entryPoint, + List? apis, + List? abilities, bool? selected}) => MetadataPluginsTableData( id: id ?? this.id, @@ -4479,6 +4559,9 @@ class MetadataPluginsTableData extends DataClass description: description ?? this.description, version: version ?? this.version, author: author ?? this.author, + entryPoint: entryPoint ?? this.entryPoint, + apis: apis ?? this.apis, + abilities: abilities ?? this.abilities, selected: selected ?? this.selected, ); MetadataPluginsTableData copyWithCompanion( @@ -4490,6 +4573,10 @@ class MetadataPluginsTableData extends DataClass data.description.present ? data.description.value : this.description, version: data.version.present ? data.version.value : this.version, author: data.author.present ? data.author.value : this.author, + entryPoint: + data.entryPoint.present ? data.entryPoint.value : this.entryPoint, + apis: data.apis.present ? data.apis.value : this.apis, + abilities: data.abilities.present ? data.abilities.value : this.abilities, selected: data.selected.present ? data.selected.value : this.selected, ); } @@ -4502,14 +4589,17 @@ class MetadataPluginsTableData extends DataClass ..write('description: $description, ') ..write('version: $version, ') ..write('author: $author, ') + ..write('entryPoint: $entryPoint, ') + ..write('apis: $apis, ') + ..write('abilities: $abilities, ') ..write('selected: $selected') ..write(')')) .toString(); } @override - int get hashCode => - Object.hash(id, name, description, version, author, selected); + int get hashCode => Object.hash(id, name, description, version, author, + entryPoint, apis, abilities, selected); @override bool operator ==(Object other) => identical(this, other) || @@ -4519,6 +4609,9 @@ class MetadataPluginsTableData extends DataClass other.description == this.description && other.version == this.version && other.author == this.author && + other.entryPoint == this.entryPoint && + other.apis == this.apis && + other.abilities == this.abilities && other.selected == this.selected); } @@ -4529,6 +4622,9 @@ class MetadataPluginsTableCompanion final Value description; final Value version; final Value author; + final Value entryPoint; + final Value> apis; + final Value> abilities; final Value selected; const MetadataPluginsTableCompanion({ this.id = const Value.absent(), @@ -4536,6 +4632,9 @@ class MetadataPluginsTableCompanion this.description = const Value.absent(), this.version = const Value.absent(), this.author = const Value.absent(), + this.entryPoint = const Value.absent(), + this.apis = const Value.absent(), + this.abilities = const Value.absent(), this.selected = const Value.absent(), }); MetadataPluginsTableCompanion.insert({ @@ -4544,17 +4643,26 @@ class MetadataPluginsTableCompanion required String description, required String version, required String author, + required String entryPoint, + required List apis, + required List abilities, this.selected = const Value.absent(), }) : name = Value(name), description = Value(description), version = Value(version), - author = Value(author); + author = Value(author), + entryPoint = Value(entryPoint), + apis = Value(apis), + abilities = Value(abilities); static Insertable custom({ Expression? id, Expression? name, Expression? description, Expression? version, Expression? author, + Expression? entryPoint, + Expression? apis, + Expression? abilities, Expression? selected, }) { return RawValuesInsertable({ @@ -4563,6 +4671,9 @@ class MetadataPluginsTableCompanion if (description != null) 'description': description, if (version != null) 'version': version, if (author != null) 'author': author, + if (entryPoint != null) 'entry_point': entryPoint, + if (apis != null) 'apis': apis, + if (abilities != null) 'abilities': abilities, if (selected != null) 'selected': selected, }); } @@ -4573,6 +4684,9 @@ class MetadataPluginsTableCompanion Value? description, Value? version, Value? author, + Value? entryPoint, + Value>? apis, + Value>? abilities, Value? selected}) { return MetadataPluginsTableCompanion( id: id ?? this.id, @@ -4580,6 +4694,9 @@ class MetadataPluginsTableCompanion description: description ?? this.description, version: version ?? this.version, author: author ?? this.author, + entryPoint: entryPoint ?? this.entryPoint, + apis: apis ?? this.apis, + abilities: abilities ?? this.abilities, selected: selected ?? this.selected, ); } @@ -4602,6 +4719,18 @@ class MetadataPluginsTableCompanion if (author.present) { map['author'] = Variable(author.value); } + if (entryPoint.present) { + map['entry_point'] = Variable(entryPoint.value); + } + if (apis.present) { + map['apis'] = Variable( + $MetadataPluginsTableTable.$converterapis.toSql(apis.value)); + } + if (abilities.present) { + map['abilities'] = Variable($MetadataPluginsTableTable + .$converterabilities + .toSql(abilities.value)); + } if (selected.present) { map['selected'] = Variable(selected.value); } @@ -4616,6 +4745,9 @@ class MetadataPluginsTableCompanion ..write('description: $description, ') ..write('version: $version, ') ..write('author: $author, ') + ..write('entryPoint: $entryPoint, ') + ..write('apis: $apis, ') + ..write('abilities: $abilities, ') ..write('selected: $selected') ..write(')')) .toString(); @@ -7266,6 +7398,9 @@ typedef $$MetadataPluginsTableTableCreateCompanionBuilder required String description, required String version, required String author, + required String entryPoint, + required List apis, + required List abilities, Value selected, }); typedef $$MetadataPluginsTableTableUpdateCompanionBuilder @@ -7275,6 +7410,9 @@ typedef $$MetadataPluginsTableTableUpdateCompanionBuilder Value description, Value version, Value author, + Value entryPoint, + Value> apis, + Value> abilities, Value selected, }); @@ -7302,6 +7440,19 @@ class $$MetadataPluginsTableTableFilterComposer ColumnFilters get author => $composableBuilder( column: $table.author, builder: (column) => ColumnFilters(column)); + ColumnFilters get entryPoint => $composableBuilder( + column: $table.entryPoint, builder: (column) => ColumnFilters(column)); + + ColumnWithTypeConverterFilters, List, String> get apis => + $composableBuilder( + column: $table.apis, + builder: (column) => ColumnWithTypeConverterFilters(column)); + + ColumnWithTypeConverterFilters, List, String> + get abilities => $composableBuilder( + column: $table.abilities, + builder: (column) => ColumnWithTypeConverterFilters(column)); + ColumnFilters get selected => $composableBuilder( column: $table.selected, builder: (column) => ColumnFilters(column)); } @@ -7330,6 +7481,15 @@ class $$MetadataPluginsTableTableOrderingComposer ColumnOrderings get author => $composableBuilder( column: $table.author, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get entryPoint => $composableBuilder( + column: $table.entryPoint, builder: (column) => ColumnOrderings(column)); + + ColumnOrderings get apis => $composableBuilder( + column: $table.apis, builder: (column) => ColumnOrderings(column)); + + ColumnOrderings get abilities => $composableBuilder( + column: $table.abilities, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get selected => $composableBuilder( column: $table.selected, builder: (column) => ColumnOrderings(column)); } @@ -7358,6 +7518,15 @@ class $$MetadataPluginsTableTableAnnotationComposer GeneratedColumn get author => $composableBuilder(column: $table.author, builder: (column) => column); + GeneratedColumn get entryPoint => $composableBuilder( + column: $table.entryPoint, builder: (column) => column); + + GeneratedColumnWithTypeConverter, String> get apis => + $composableBuilder(column: $table.apis, builder: (column) => column); + + GeneratedColumnWithTypeConverter, String> get abilities => + $composableBuilder(column: $table.abilities, builder: (column) => column); + GeneratedColumn get selected => $composableBuilder(column: $table.selected, builder: (column) => column); } @@ -7397,6 +7566,9 @@ class $$MetadataPluginsTableTableTableManager extends RootTableManager< Value description = const Value.absent(), Value version = const Value.absent(), Value author = const Value.absent(), + Value entryPoint = const Value.absent(), + Value> apis = const Value.absent(), + Value> abilities = const Value.absent(), Value selected = const Value.absent(), }) => MetadataPluginsTableCompanion( @@ -7405,6 +7577,9 @@ class $$MetadataPluginsTableTableTableManager extends RootTableManager< description: description, version: version, author: author, + entryPoint: entryPoint, + apis: apis, + abilities: abilities, selected: selected, ), createCompanionCallback: ({ @@ -7413,6 +7588,9 @@ class $$MetadataPluginsTableTableTableManager extends RootTableManager< required String description, required String version, required String author, + required String entryPoint, + required List apis, + required List abilities, Value selected = const Value.absent(), }) => MetadataPluginsTableCompanion.insert( @@ -7421,6 +7599,9 @@ class $$MetadataPluginsTableTableTableManager extends RootTableManager< description: description, version: version, author: author, + entryPoint: entryPoint, + apis: apis, + abilities: abilities, selected: selected, ), withReferenceMapper: (p0) => p0 diff --git a/lib/models/database/database.steps.dart b/lib/models/database/database.steps.dart index 51873c60..beccaef8 100644 --- a/lib/models/database/database.steps.dart +++ b/lib/models/database/database.steps.dart @@ -1918,6 +1918,9 @@ final class Schema7 extends i0.VersionedSchema { _column_59, _column_60, _column_61, + _column_62, + _column_63, + _column_64, ], attachedDatabase: database, ), @@ -1940,6 +1943,12 @@ class Shape14 extends i0.VersionedTable { columnsByName['version']! as i1.GeneratedColumn; i1.GeneratedColumn get author => columnsByName['author']! as i1.GeneratedColumn; + i1.GeneratedColumn get entryPoint => + columnsByName['entry_point']! as i1.GeneratedColumn; + i1.GeneratedColumn get apis => + columnsByName['apis']! as i1.GeneratedColumn; + i1.GeneratedColumn get abilities => + columnsByName['abilities']! as i1.GeneratedColumn; i1.GeneratedColumn get selected => columnsByName['selected']! as i1.GeneratedColumn; } @@ -1958,7 +1967,16 @@ i1.GeneratedColumn _column_59(String aliasedName) => i1.GeneratedColumn _column_60(String aliasedName) => i1.GeneratedColumn('author', aliasedName, false, type: i1.DriftSqlType.string); -i1.GeneratedColumn _column_61(String aliasedName) => +i1.GeneratedColumn _column_61(String aliasedName) => + i1.GeneratedColumn('entry_point', aliasedName, false, + type: i1.DriftSqlType.string); +i1.GeneratedColumn _column_62(String aliasedName) => + i1.GeneratedColumn('apis', aliasedName, false, + type: i1.DriftSqlType.string); +i1.GeneratedColumn _column_63(String aliasedName) => + i1.GeneratedColumn('abilities', aliasedName, false, + type: i1.DriftSqlType.string); +i1.GeneratedColumn _column_64(String aliasedName) => i1.GeneratedColumn('selected', aliasedName, false, type: i1.DriftSqlType.bool, defaultConstraints: i1.GeneratedColumn.constraintIsAlways( diff --git a/lib/models/database/tables/metadata_plugins.dart b/lib/models/database/tables/metadata_plugins.dart index e2f49a92..2f243fc1 100644 --- a/lib/models/database/tables/metadata_plugins.dart +++ b/lib/models/database/tables/metadata_plugins.dart @@ -6,5 +6,8 @@ class MetadataPluginsTable extends Table { TextColumn get description => text()(); TextColumn get version => text()(); TextColumn get author => text()(); + TextColumn get entryPoint => text()(); + TextColumn get apis => text().map(const StringListConverter())(); + TextColumn get abilities => text().map(const StringListConverter())(); BoolColumn get selected => boolean().withDefault(const Constant(false))(); } diff --git a/lib/models/metadata/metadata.freezed.dart b/lib/models/metadata/metadata.freezed.dart index b5a2599f..f5544cb5 100644 --- a/lib/models/metadata/metadata.freezed.dart +++ b/lib/models/metadata/metadata.freezed.dart @@ -2442,6 +2442,9 @@ mixin _$PluginConfiguration { String get description => throw _privateConstructorUsedError; String get version => throw _privateConstructorUsedError; String get author => throw _privateConstructorUsedError; + String get entryPoint => throw _privateConstructorUsedError; + List get apis => throw _privateConstructorUsedError; + List get abilities => throw _privateConstructorUsedError; /// Serializes this PluginConfiguration to a JSON map. Map toJson() => throw _privateConstructorUsedError; @@ -2464,7 +2467,10 @@ abstract class $PluginConfigurationCopyWith<$Res> { String name, String description, String version, - String author}); + String author, + String entryPoint, + List apis, + List abilities}); } /// @nodoc @@ -2487,6 +2493,9 @@ class _$PluginConfigurationCopyWithImpl<$Res, $Val extends PluginConfiguration> Object? description = null, Object? version = null, Object? author = null, + Object? entryPoint = null, + Object? apis = null, + Object? abilities = null, }) { return _then(_value.copyWith( type: null == type @@ -2509,6 +2518,18 @@ class _$PluginConfigurationCopyWithImpl<$Res, $Val extends PluginConfiguration> ? _value.author : author // ignore: cast_nullable_to_non_nullable as String, + entryPoint: null == entryPoint + ? _value.entryPoint + : entryPoint // ignore: cast_nullable_to_non_nullable + as String, + apis: null == apis + ? _value.apis + : apis // ignore: cast_nullable_to_non_nullable + as List, + abilities: null == abilities + ? _value.abilities + : abilities // ignore: cast_nullable_to_non_nullable + as List, ) as $Val); } } @@ -2526,7 +2547,10 @@ abstract class _$$PluginConfigurationImplCopyWith<$Res> String name, String description, String version, - String author}); + String author, + String entryPoint, + List apis, + List abilities}); } /// @nodoc @@ -2547,6 +2571,9 @@ class __$$PluginConfigurationImplCopyWithImpl<$Res> Object? description = null, Object? version = null, Object? author = null, + Object? entryPoint = null, + Object? apis = null, + Object? abilities = null, }) { return _then(_$PluginConfigurationImpl( type: null == type @@ -2569,6 +2596,18 @@ class __$$PluginConfigurationImplCopyWithImpl<$Res> ? _value.author : author // ignore: cast_nullable_to_non_nullable as String, + entryPoint: null == entryPoint + ? _value.entryPoint + : entryPoint // ignore: cast_nullable_to_non_nullable + as String, + apis: null == apis + ? _value._apis + : apis // ignore: cast_nullable_to_non_nullable + as List, + abilities: null == abilities + ? _value._abilities + : abilities // ignore: cast_nullable_to_non_nullable + as List, )); } } @@ -2581,8 +2620,13 @@ class _$PluginConfigurationImpl extends _PluginConfiguration { required this.name, required this.description, required this.version, - required this.author}) - : super._(); + required this.author, + required this.entryPoint, + final List apis = const [], + final List abilities = const []}) + : _apis = apis, + _abilities = abilities, + super._(); factory _$PluginConfigurationImpl.fromJson(Map json) => _$$PluginConfigurationImplFromJson(json); @@ -2597,10 +2641,29 @@ class _$PluginConfigurationImpl extends _PluginConfiguration { final String version; @override final String author; + @override + final String entryPoint; + final List _apis; + @override + @JsonKey() + List get apis { + if (_apis is EqualUnmodifiableListView) return _apis; + // ignore: implicit_dynamic_type + return EqualUnmodifiableListView(_apis); + } + + final List _abilities; + @override + @JsonKey() + List get abilities { + if (_abilities is EqualUnmodifiableListView) return _abilities; + // ignore: implicit_dynamic_type + return EqualUnmodifiableListView(_abilities); + } @override String toString() { - return 'PluginConfiguration(type: $type, name: $name, description: $description, version: $version, author: $author)'; + return 'PluginConfiguration(type: $type, name: $name, description: $description, version: $version, author: $author, entryPoint: $entryPoint, apis: $apis, abilities: $abilities)'; } @override @@ -2613,13 +2676,26 @@ class _$PluginConfigurationImpl extends _PluginConfiguration { (identical(other.description, description) || other.description == description) && (identical(other.version, version) || other.version == version) && - (identical(other.author, author) || other.author == author)); + (identical(other.author, author) || other.author == author) && + (identical(other.entryPoint, entryPoint) || + other.entryPoint == entryPoint) && + const DeepCollectionEquality().equals(other._apis, _apis) && + const DeepCollectionEquality() + .equals(other._abilities, _abilities)); } @JsonKey(includeFromJson: false, includeToJson: false) @override - int get hashCode => - Object.hash(runtimeType, type, name, description, version, author); + int get hashCode => Object.hash( + runtimeType, + type, + name, + description, + version, + author, + entryPoint, + const DeepCollectionEquality().hash(_apis), + const DeepCollectionEquality().hash(_abilities)); /// Create a copy of PluginConfiguration /// with the given fields replaced by the non-null parameter values. @@ -2644,7 +2720,10 @@ abstract class _PluginConfiguration extends PluginConfiguration { required final String name, required final String description, required final String version, - required final String author}) = _$PluginConfigurationImpl; + required final String author, + required final String entryPoint, + final List apis, + final List abilities}) = _$PluginConfigurationImpl; _PluginConfiguration._() : super._(); factory _PluginConfiguration.fromJson(Map json) = @@ -2660,6 +2739,12 @@ abstract class _PluginConfiguration extends PluginConfiguration { String get version; @override String get author; + @override + String get entryPoint; + @override + List get apis; + @override + List get abilities; /// Create a copy of PluginConfiguration /// with the given fields replaced by the non-null parameter values. diff --git a/lib/models/metadata/metadata.g.dart b/lib/models/metadata/metadata.g.dart index 96c8119c..7ae2cc75 100644 --- a/lib/models/metadata/metadata.g.dart +++ b/lib/models/metadata/metadata.g.dart @@ -231,6 +231,15 @@ _$PluginConfigurationImpl _$$PluginConfigurationImplFromJson(Map json) => description: json['description'] as String, version: json['version'] as String, author: json['author'] as String, + entryPoint: json['entryPoint'] as String, + apis: (json['apis'] as List?) + ?.map((e) => $enumDecode(_$PluginApisEnumMap, e)) + .toList() ?? + const [], + abilities: (json['abilities'] as List?) + ?.map((e) => $enumDecode(_$PluginAbilitiesEnumMap, e)) + .toList() ?? + const [], ); Map _$$PluginConfigurationImplToJson( @@ -241,8 +250,22 @@ Map _$$PluginConfigurationImplToJson( 'description': instance.description, 'version': instance.version, 'author': instance.author, + 'entryPoint': instance.entryPoint, + 'apis': instance.apis.map((e) => _$PluginApisEnumMap[e]!).toList(), + 'abilities': + instance.abilities.map((e) => _$PluginAbilitiesEnumMap[e]!).toList(), }; const _$PluginTypeEnumMap = { PluginType.metadata: 'metadata', }; + +const _$PluginApisEnumMap = { + PluginApis.webview: 'webview', + PluginApis.localstorage: 'localstorage', + PluginApis.timezone: 'timezone', +}; + +const _$PluginAbilitiesEnumMap = { + PluginAbilities.authentication: 'authentication', +}; diff --git a/lib/models/metadata/plugin.dart b/lib/models/metadata/plugin.dart index d6254168..fba14c08 100644 --- a/lib/models/metadata/plugin.dart +++ b/lib/models/metadata/plugin.dart @@ -2,6 +2,10 @@ part of 'metadata.dart'; enum PluginType { metadata } +enum PluginApis { webview, localstorage, timezone } + +enum PluginAbilities { authentication } + @freezed class PluginConfiguration with _$PluginConfiguration { const PluginConfiguration._(); @@ -12,6 +16,9 @@ class PluginConfiguration with _$PluginConfiguration { required String description, required String version, required String author, + required String entryPoint, + @Default([]) List apis, + @Default([]) List abilities, }) = _PluginConfiguration; factory PluginConfiguration.fromJson(Map json) => diff --git a/lib/provider/metadata_plugin/metadata_plugin_provider.dart b/lib/provider/metadata_plugin/metadata_plugin_provider.dart index 3e6197e6..2852c537 100644 --- a/lib/provider/metadata_plugin/metadata_plugin_provider.dart +++ b/lib/provider/metadata_plugin/metadata_plugin_provider.dart @@ -101,6 +101,23 @@ class MetadataPluginNotifier extends AsyncNotifier { author: plugin.author, description: plugin.description, version: plugin.version, + entryPoint: plugin.entryPoint, + apis: plugin.apis + .map( + (e) => PluginApis.values.firstWhereOrNull( + (api) => api.name == e, + ), + ) + .nonNulls + .toList(), + abilities: plugin.abilities + .map( + (e) => PluginAbilities.values.firstWhereOrNull( + (ability) => ability.name == e, + ), + ) + .nonNulls + .toList(), ); }, ).toList(); @@ -269,6 +286,9 @@ class MetadataPluginNotifier extends AsyncNotifier { author: plugin.author, description: plugin.description, version: plugin.version, + entryPoint: plugin.entryPoint, + apis: plugin.apis.map((e) => e.name).toList(), + abilities: plugin.abilities.map((e) => e.name).toList(), ), ); } diff --git a/test/drift/app_db/generated/schema_v7.dart b/test/drift/app_db/generated/schema_v7.dart index dcd2e2a9..49f87c47 100644 --- a/test/drift/app_db/generated/schema_v7.dart +++ b/test/drift/app_db/generated/schema_v7.dart @@ -3450,6 +3450,15 @@ class MetadataPluginsTable extends Table late final GeneratedColumn author = GeneratedColumn( 'author', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn entryPoint = GeneratedColumn( + 'entry_point', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn apis = GeneratedColumn( + 'apis', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn abilities = GeneratedColumn( + 'abilities', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true); late final GeneratedColumn selected = GeneratedColumn( 'selected', aliasedName, false, type: DriftSqlType.bool, @@ -3458,8 +3467,17 @@ class MetadataPluginsTable extends Table GeneratedColumn.constraintIsAlways('CHECK ("selected" IN (0, 1))'), defaultValue: const Constant(false)); @override - List get $columns => - [id, name, description, version, author, selected]; + List get $columns => [ + id, + name, + description, + version, + author, + entryPoint, + apis, + abilities, + selected + ]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -3482,6 +3500,12 @@ class MetadataPluginsTable extends Table .read(DriftSqlType.string, data['${effectivePrefix}version'])!, author: attachedDatabase.typeMapping .read(DriftSqlType.string, data['${effectivePrefix}author'])!, + entryPoint: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}entry_point'])!, + apis: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}apis'])!, + abilities: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}abilities'])!, selected: attachedDatabase.typeMapping .read(DriftSqlType.bool, data['${effectivePrefix}selected'])!, ); @@ -3500,6 +3524,9 @@ class MetadataPluginsTableData extends DataClass final String description; final String version; final String author; + final String entryPoint; + final String apis; + final String abilities; final bool selected; const MetadataPluginsTableData( {required this.id, @@ -3507,6 +3534,9 @@ class MetadataPluginsTableData extends DataClass required this.description, required this.version, required this.author, + required this.entryPoint, + required this.apis, + required this.abilities, required this.selected}); @override Map toColumns(bool nullToAbsent) { @@ -3516,6 +3546,9 @@ class MetadataPluginsTableData extends DataClass map['description'] = Variable(description); map['version'] = Variable(version); map['author'] = Variable(author); + map['entry_point'] = Variable(entryPoint); + map['apis'] = Variable(apis); + map['abilities'] = Variable(abilities); map['selected'] = Variable(selected); return map; } @@ -3527,6 +3560,9 @@ class MetadataPluginsTableData extends DataClass description: Value(description), version: Value(version), author: Value(author), + entryPoint: Value(entryPoint), + apis: Value(apis), + abilities: Value(abilities), selected: Value(selected), ); } @@ -3540,6 +3576,9 @@ class MetadataPluginsTableData extends DataClass description: serializer.fromJson(json['description']), version: serializer.fromJson(json['version']), author: serializer.fromJson(json['author']), + entryPoint: serializer.fromJson(json['entryPoint']), + apis: serializer.fromJson(json['apis']), + abilities: serializer.fromJson(json['abilities']), selected: serializer.fromJson(json['selected']), ); } @@ -3552,6 +3591,9 @@ class MetadataPluginsTableData extends DataClass 'description': serializer.toJson(description), 'version': serializer.toJson(version), 'author': serializer.toJson(author), + 'entryPoint': serializer.toJson(entryPoint), + 'apis': serializer.toJson(apis), + 'abilities': serializer.toJson(abilities), 'selected': serializer.toJson(selected), }; } @@ -3562,6 +3604,9 @@ class MetadataPluginsTableData extends DataClass String? description, String? version, String? author, + String? entryPoint, + String? apis, + String? abilities, bool? selected}) => MetadataPluginsTableData( id: id ?? this.id, @@ -3569,6 +3614,9 @@ class MetadataPluginsTableData extends DataClass description: description ?? this.description, version: version ?? this.version, author: author ?? this.author, + entryPoint: entryPoint ?? this.entryPoint, + apis: apis ?? this.apis, + abilities: abilities ?? this.abilities, selected: selected ?? this.selected, ); MetadataPluginsTableData copyWithCompanion( @@ -3580,6 +3628,10 @@ class MetadataPluginsTableData extends DataClass data.description.present ? data.description.value : this.description, version: data.version.present ? data.version.value : this.version, author: data.author.present ? data.author.value : this.author, + entryPoint: + data.entryPoint.present ? data.entryPoint.value : this.entryPoint, + apis: data.apis.present ? data.apis.value : this.apis, + abilities: data.abilities.present ? data.abilities.value : this.abilities, selected: data.selected.present ? data.selected.value : this.selected, ); } @@ -3592,14 +3644,17 @@ class MetadataPluginsTableData extends DataClass ..write('description: $description, ') ..write('version: $version, ') ..write('author: $author, ') + ..write('entryPoint: $entryPoint, ') + ..write('apis: $apis, ') + ..write('abilities: $abilities, ') ..write('selected: $selected') ..write(')')) .toString(); } @override - int get hashCode => - Object.hash(id, name, description, version, author, selected); + int get hashCode => Object.hash(id, name, description, version, author, + entryPoint, apis, abilities, selected); @override bool operator ==(Object other) => identical(this, other) || @@ -3609,6 +3664,9 @@ class MetadataPluginsTableData extends DataClass other.description == this.description && other.version == this.version && other.author == this.author && + other.entryPoint == this.entryPoint && + other.apis == this.apis && + other.abilities == this.abilities && other.selected == this.selected); } @@ -3619,6 +3677,9 @@ class MetadataPluginsTableCompanion final Value description; final Value version; final Value author; + final Value entryPoint; + final Value apis; + final Value abilities; final Value selected; const MetadataPluginsTableCompanion({ this.id = const Value.absent(), @@ -3626,6 +3687,9 @@ class MetadataPluginsTableCompanion this.description = const Value.absent(), this.version = const Value.absent(), this.author = const Value.absent(), + this.entryPoint = const Value.absent(), + this.apis = const Value.absent(), + this.abilities = const Value.absent(), this.selected = const Value.absent(), }); MetadataPluginsTableCompanion.insert({ @@ -3634,17 +3698,26 @@ class MetadataPluginsTableCompanion required String description, required String version, required String author, + required String entryPoint, + required String apis, + required String abilities, this.selected = const Value.absent(), }) : name = Value(name), description = Value(description), version = Value(version), - author = Value(author); + author = Value(author), + entryPoint = Value(entryPoint), + apis = Value(apis), + abilities = Value(abilities); static Insertable custom({ Expression? id, Expression? name, Expression? description, Expression? version, Expression? author, + Expression? entryPoint, + Expression? apis, + Expression? abilities, Expression? selected, }) { return RawValuesInsertable({ @@ -3653,6 +3726,9 @@ class MetadataPluginsTableCompanion if (description != null) 'description': description, if (version != null) 'version': version, if (author != null) 'author': author, + if (entryPoint != null) 'entry_point': entryPoint, + if (apis != null) 'apis': apis, + if (abilities != null) 'abilities': abilities, if (selected != null) 'selected': selected, }); } @@ -3663,6 +3739,9 @@ class MetadataPluginsTableCompanion Value? description, Value? version, Value? author, + Value? entryPoint, + Value? apis, + Value? abilities, Value? selected}) { return MetadataPluginsTableCompanion( id: id ?? this.id, @@ -3670,6 +3749,9 @@ class MetadataPluginsTableCompanion description: description ?? this.description, version: version ?? this.version, author: author ?? this.author, + entryPoint: entryPoint ?? this.entryPoint, + apis: apis ?? this.apis, + abilities: abilities ?? this.abilities, selected: selected ?? this.selected, ); } @@ -3692,6 +3774,15 @@ class MetadataPluginsTableCompanion if (author.present) { map['author'] = Variable(author.value); } + if (entryPoint.present) { + map['entry_point'] = Variable(entryPoint.value); + } + if (apis.present) { + map['apis'] = Variable(apis.value); + } + if (abilities.present) { + map['abilities'] = Variable(abilities.value); + } if (selected.present) { map['selected'] = Variable(selected.value); } @@ -3706,6 +3797,9 @@ class MetadataPluginsTableCompanion ..write('description: $description, ') ..write('version: $version, ') ..write('author: $author, ') + ..write('entryPoint: $entryPoint, ') + ..write('apis: $apis, ') + ..write('abilities: $abilities, ') ..write('selected: $selected') ..write(')')) .toString();