mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 16:05:18 +00:00

* feat: add caching support with track metadata * feat(settings): add cache music toggle * fix(mobile): cache dir not open-able * feat(local folder): add cache export/clear actions and size of the folder * chore: ios deps upgrades * chore: upgrade lint flutter version * chore: lint secrets causing error * cd: invalid value for env var
941 lines
36 KiB
Dart
941 lines
36 KiB
Dart
// dart format width=80
|
|
import 'package:drift/internal/versioned_schema.dart' as i0;
|
|
import 'package:drift/drift.dart' as i1;
|
|
import 'package:drift/drift.dart'; // ignore_for_file: type=lint,unused_import
|
|
import 'package:flutter/material.dart';
|
|
import 'package:spotify/spotify.dart';
|
|
import 'package:spotube/services/sourced_track/enums.dart';
|
|
import 'package:spotube/utils/migrations/adapters.dart';
|
|
|
|
// GENERATED BY drift_dev, DO NOT MODIFY.
|
|
final class Schema2 extends i0.VersionedSchema {
|
|
Schema2({required super.database}) : super(version: 2);
|
|
@override
|
|
late final List<i1.DatabaseSchemaEntity> entities = [
|
|
authenticationTable,
|
|
blacklistTable,
|
|
preferencesTable,
|
|
scrobblerTable,
|
|
skipSegmentTable,
|
|
sourceMatchTable,
|
|
audioPlayerStateTable,
|
|
playlistTable,
|
|
playlistMediaTable,
|
|
historyTable,
|
|
lyricsTable,
|
|
uniqueBlacklist,
|
|
uniqTrackMatch,
|
|
];
|
|
late final Shape0 authenticationTable = Shape0(
|
|
source: i0.VersionedTable(
|
|
entityName: 'authentication_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_1,
|
|
_column_2,
|
|
_column_3,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape1 blacklistTable = Shape1(
|
|
source: i0.VersionedTable(
|
|
entityName: 'blacklist_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_4,
|
|
_column_5,
|
|
_column_6,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape2 preferencesTable = Shape2(
|
|
source: i0.VersionedTable(
|
|
entityName: 'preferences_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_7,
|
|
_column_8,
|
|
_column_9,
|
|
_column_10,
|
|
_column_11,
|
|
_column_12,
|
|
_column_13,
|
|
_column_14,
|
|
_column_15,
|
|
_column_16,
|
|
_column_17,
|
|
_column_18,
|
|
_column_19,
|
|
_column_20,
|
|
_column_21,
|
|
_column_22,
|
|
_column_23,
|
|
_column_24,
|
|
_column_25,
|
|
_column_26,
|
|
_column_27,
|
|
_column_28,
|
|
_column_29,
|
|
_column_30,
|
|
_column_31,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape3 scrobblerTable = Shape3(
|
|
source: i0.VersionedTable(
|
|
entityName: 'scrobbler_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_32,
|
|
_column_33,
|
|
_column_34,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape4 skipSegmentTable = Shape4(
|
|
source: i0.VersionedTable(
|
|
entityName: 'skip_segment_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_35,
|
|
_column_36,
|
|
_column_37,
|
|
_column_32,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape5 sourceMatchTable = Shape5(
|
|
source: i0.VersionedTable(
|
|
entityName: 'source_match_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_37,
|
|
_column_38,
|
|
_column_39,
|
|
_column_32,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape6 audioPlayerStateTable = Shape6(
|
|
source: i0.VersionedTable(
|
|
entityName: 'audio_player_state_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_40,
|
|
_column_41,
|
|
_column_42,
|
|
_column_43,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape7 playlistTable = Shape7(
|
|
source: i0.VersionedTable(
|
|
entityName: 'playlist_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_44,
|
|
_column_45,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape8 playlistMediaTable = Shape8(
|
|
source: i0.VersionedTable(
|
|
entityName: 'playlist_media_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_46,
|
|
_column_47,
|
|
_column_48,
|
|
_column_49,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape9 historyTable = Shape9(
|
|
source: i0.VersionedTable(
|
|
entityName: 'history_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_32,
|
|
_column_50,
|
|
_column_51,
|
|
_column_52,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape10 lyricsTable = Shape10(
|
|
source: i0.VersionedTable(
|
|
entityName: 'lyrics_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_37,
|
|
_column_52,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
final i1.Index uniqueBlacklist = i1.Index('unique_blacklist',
|
|
'CREATE UNIQUE INDEX unique_blacklist ON blacklist_table (element_type, element_id)');
|
|
final i1.Index uniqTrackMatch = i1.Index('uniq_track_match',
|
|
'CREATE UNIQUE INDEX uniq_track_match ON source_match_table (track_id, source_id, source_type)');
|
|
}
|
|
|
|
class Shape0 extends i0.VersionedTable {
|
|
Shape0({required super.source, required super.alias}) : super.aliased();
|
|
i1.GeneratedColumn<int> get id =>
|
|
columnsByName['id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<String> get cookie =>
|
|
columnsByName['cookie']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get accessToken =>
|
|
columnsByName['access_token']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<DateTime> get expiration =>
|
|
columnsByName['expiration']! as i1.GeneratedColumn<DateTime>;
|
|
}
|
|
|
|
i1.GeneratedColumn<int> _column_0(String aliasedName) =>
|
|
i1.GeneratedColumn<int>('id', aliasedName, false,
|
|
hasAutoIncrement: true,
|
|
type: i1.DriftSqlType.int,
|
|
defaultConstraints:
|
|
i1.GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'));
|
|
i1.GeneratedColumn<String> _column_1(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('cookie', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
i1.GeneratedColumn<String> _column_2(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('access_token', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
i1.GeneratedColumn<DateTime> _column_3(String aliasedName) =>
|
|
i1.GeneratedColumn<DateTime>('expiration', aliasedName, false,
|
|
type: i1.DriftSqlType.dateTime);
|
|
|
|
class Shape1 extends i0.VersionedTable {
|
|
Shape1({required super.source, required super.alias}) : super.aliased();
|
|
i1.GeneratedColumn<int> get id =>
|
|
columnsByName['id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<String> get name =>
|
|
columnsByName['name']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get elementType =>
|
|
columnsByName['element_type']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get elementId =>
|
|
columnsByName['element_id']! as i1.GeneratedColumn<String>;
|
|
}
|
|
|
|
i1.GeneratedColumn<String> _column_4(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('name', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
i1.GeneratedColumn<String> _column_5(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('element_type', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
i1.GeneratedColumn<String> _column_6(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('element_id', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
|
|
class Shape2 extends i0.VersionedTable {
|
|
Shape2({required super.source, required super.alias}) : super.aliased();
|
|
i1.GeneratedColumn<int> get id =>
|
|
columnsByName['id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<String> get audioQuality =>
|
|
columnsByName['audio_quality']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<bool> get albumColorSync =>
|
|
columnsByName['album_color_sync']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get amoledDarkTheme =>
|
|
columnsByName['amoled_dark_theme']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get checkUpdate =>
|
|
columnsByName['check_update']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get normalizeAudio =>
|
|
columnsByName['normalize_audio']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get showSystemTrayIcon =>
|
|
columnsByName['show_system_tray_icon']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get systemTitleBar =>
|
|
columnsByName['system_title_bar']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get skipNonMusic =>
|
|
columnsByName['skip_non_music']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<String> get closeBehavior =>
|
|
columnsByName['close_behavior']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get accentColorScheme =>
|
|
columnsByName['accent_color_scheme']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get layoutMode =>
|
|
columnsByName['layout_mode']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get locale =>
|
|
columnsByName['locale']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get market =>
|
|
columnsByName['market']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get searchMode =>
|
|
columnsByName['search_mode']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get downloadLocation =>
|
|
columnsByName['download_location']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get localLibraryLocation =>
|
|
columnsByName['local_library_location']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get pipedInstance =>
|
|
columnsByName['piped_instance']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get invidiousInstance =>
|
|
columnsByName['invidious_instance']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get themeMode =>
|
|
columnsByName['theme_mode']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get audioSource =>
|
|
columnsByName['audio_source']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get streamMusicCodec =>
|
|
columnsByName['stream_music_codec']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get downloadMusicCodec =>
|
|
columnsByName['download_music_codec']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<bool> get discordPresence =>
|
|
columnsByName['discord_presence']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get endlessPlayback =>
|
|
columnsByName['endless_playback']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get enableConnect =>
|
|
columnsByName['enable_connect']! as i1.GeneratedColumn<bool>;
|
|
}
|
|
|
|
i1.GeneratedColumn<String> _column_7(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('audio_quality', aliasedName, false,
|
|
type: i1.DriftSqlType.string,
|
|
defaultValue: Constant(SourceQualities.high.name));
|
|
i1.GeneratedColumn<bool> _column_8(String aliasedName) =>
|
|
i1.GeneratedColumn<bool>('album_color_sync', aliasedName, false,
|
|
type: i1.DriftSqlType.bool,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'CHECK ("album_color_sync" IN (0, 1))'),
|
|
defaultValue: const Constant(true));
|
|
i1.GeneratedColumn<bool> _column_9(String aliasedName) =>
|
|
i1.GeneratedColumn<bool>('amoled_dark_theme', aliasedName, false,
|
|
type: i1.DriftSqlType.bool,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'CHECK ("amoled_dark_theme" IN (0, 1))'),
|
|
defaultValue: const Constant(false));
|
|
i1.GeneratedColumn<bool> _column_10(String aliasedName) =>
|
|
i1.GeneratedColumn<bool>('check_update', aliasedName, false,
|
|
type: i1.DriftSqlType.bool,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'CHECK ("check_update" IN (0, 1))'),
|
|
defaultValue: const Constant(true));
|
|
i1.GeneratedColumn<bool> _column_11(String aliasedName) =>
|
|
i1.GeneratedColumn<bool>('normalize_audio', aliasedName, false,
|
|
type: i1.DriftSqlType.bool,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'CHECK ("normalize_audio" IN (0, 1))'),
|
|
defaultValue: const Constant(false));
|
|
i1.GeneratedColumn<bool> _column_12(String aliasedName) =>
|
|
i1.GeneratedColumn<bool>('show_system_tray_icon', aliasedName, false,
|
|
type: i1.DriftSqlType.bool,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'CHECK ("show_system_tray_icon" IN (0, 1))'),
|
|
defaultValue: const Constant(false));
|
|
i1.GeneratedColumn<bool> _column_13(String aliasedName) =>
|
|
i1.GeneratedColumn<bool>('system_title_bar', aliasedName, false,
|
|
type: i1.DriftSqlType.bool,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'CHECK ("system_title_bar" IN (0, 1))'),
|
|
defaultValue: const Constant(false));
|
|
i1.GeneratedColumn<bool> _column_14(String aliasedName) =>
|
|
i1.GeneratedColumn<bool>('skip_non_music', aliasedName, false,
|
|
type: i1.DriftSqlType.bool,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'CHECK ("skip_non_music" IN (0, 1))'),
|
|
defaultValue: const Constant(false));
|
|
i1.GeneratedColumn<String> _column_15(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('close_behavior', aliasedName, false,
|
|
type: i1.DriftSqlType.string,
|
|
defaultValue: Constant(CloseBehavior.close.name));
|
|
i1.GeneratedColumn<String> _column_16(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('accent_color_scheme', aliasedName, false,
|
|
type: i1.DriftSqlType.string,
|
|
defaultValue: const Constant("Blue:0xFF2196F3"));
|
|
i1.GeneratedColumn<String> _column_17(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('layout_mode', aliasedName, false,
|
|
type: i1.DriftSqlType.string,
|
|
defaultValue: Constant(LayoutMode.adaptive.name));
|
|
i1.GeneratedColumn<String> _column_18(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('locale', aliasedName, false,
|
|
type: i1.DriftSqlType.string,
|
|
defaultValue:
|
|
const Constant('{"languageCode":"system","countryCode":"system"}'));
|
|
i1.GeneratedColumn<String> _column_19(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('market', aliasedName, false,
|
|
type: i1.DriftSqlType.string, defaultValue: Constant(Market.US.name));
|
|
i1.GeneratedColumn<String> _column_20(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('search_mode', aliasedName, false,
|
|
type: i1.DriftSqlType.string,
|
|
defaultValue: Constant(SearchMode.youtube.name));
|
|
i1.GeneratedColumn<String> _column_21(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('download_location', aliasedName, false,
|
|
type: i1.DriftSqlType.string, defaultValue: const Constant(""));
|
|
i1.GeneratedColumn<String> _column_22(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('local_library_location', aliasedName, false,
|
|
type: i1.DriftSqlType.string, defaultValue: const Constant(""));
|
|
i1.GeneratedColumn<String> _column_23(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('piped_instance', aliasedName, false,
|
|
type: i1.DriftSqlType.string,
|
|
defaultValue: const Constant("https://pipedapi.kavin.rocks"));
|
|
i1.GeneratedColumn<String> _column_24(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('invidious_instance', aliasedName, false,
|
|
type: i1.DriftSqlType.string,
|
|
defaultValue: const Constant("https://inv.nadeko.net"));
|
|
i1.GeneratedColumn<String> _column_25(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('theme_mode', aliasedName, false,
|
|
type: i1.DriftSqlType.string,
|
|
defaultValue: Constant(ThemeMode.system.name));
|
|
i1.GeneratedColumn<String> _column_26(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('audio_source', aliasedName, false,
|
|
type: i1.DriftSqlType.string,
|
|
defaultValue: Constant(AudioSource.youtube.name));
|
|
i1.GeneratedColumn<String> _column_27(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('stream_music_codec', aliasedName, false,
|
|
type: i1.DriftSqlType.string,
|
|
defaultValue: Constant(SourceCodecs.weba.name));
|
|
i1.GeneratedColumn<String> _column_28(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('download_music_codec', aliasedName, false,
|
|
type: i1.DriftSqlType.string,
|
|
defaultValue: Constant(SourceCodecs.m4a.name));
|
|
i1.GeneratedColumn<bool> _column_29(String aliasedName) =>
|
|
i1.GeneratedColumn<bool>('discord_presence', aliasedName, false,
|
|
type: i1.DriftSqlType.bool,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'CHECK ("discord_presence" IN (0, 1))'),
|
|
defaultValue: const Constant(true));
|
|
i1.GeneratedColumn<bool> _column_30(String aliasedName) =>
|
|
i1.GeneratedColumn<bool>('endless_playback', aliasedName, false,
|
|
type: i1.DriftSqlType.bool,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'CHECK ("endless_playback" IN (0, 1))'),
|
|
defaultValue: const Constant(true));
|
|
i1.GeneratedColumn<bool> _column_31(String aliasedName) =>
|
|
i1.GeneratedColumn<bool>('enable_connect', aliasedName, false,
|
|
type: i1.DriftSqlType.bool,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'CHECK ("enable_connect" IN (0, 1))'),
|
|
defaultValue: const Constant(false));
|
|
|
|
class Shape3 extends i0.VersionedTable {
|
|
Shape3({required super.source, required super.alias}) : super.aliased();
|
|
i1.GeneratedColumn<int> get id =>
|
|
columnsByName['id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<DateTime> get createdAt =>
|
|
columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
|
|
i1.GeneratedColumn<String> get username =>
|
|
columnsByName['username']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get passwordHash =>
|
|
columnsByName['password_hash']! as i1.GeneratedColumn<String>;
|
|
}
|
|
|
|
i1.GeneratedColumn<DateTime> _column_32(String aliasedName) =>
|
|
i1.GeneratedColumn<DateTime>('created_at', aliasedName, false,
|
|
type: i1.DriftSqlType.dateTime, defaultValue: currentDateAndTime);
|
|
i1.GeneratedColumn<String> _column_33(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('username', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
i1.GeneratedColumn<String> _column_34(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('password_hash', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
|
|
class Shape4 extends i0.VersionedTable {
|
|
Shape4({required super.source, required super.alias}) : super.aliased();
|
|
i1.GeneratedColumn<int> get id =>
|
|
columnsByName['id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<int> get start =>
|
|
columnsByName['start']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<int> get end =>
|
|
columnsByName['end']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<String> get trackId =>
|
|
columnsByName['track_id']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<DateTime> get createdAt =>
|
|
columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
|
|
}
|
|
|
|
i1.GeneratedColumn<int> _column_35(String aliasedName) =>
|
|
i1.GeneratedColumn<int>('start', aliasedName, false,
|
|
type: i1.DriftSqlType.int);
|
|
i1.GeneratedColumn<int> _column_36(String aliasedName) =>
|
|
i1.GeneratedColumn<int>('end', aliasedName, false,
|
|
type: i1.DriftSqlType.int);
|
|
i1.GeneratedColumn<String> _column_37(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('track_id', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
|
|
class Shape5 extends i0.VersionedTable {
|
|
Shape5({required super.source, required super.alias}) : super.aliased();
|
|
i1.GeneratedColumn<int> get id =>
|
|
columnsByName['id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<String> get trackId =>
|
|
columnsByName['track_id']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get sourceId =>
|
|
columnsByName['source_id']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get sourceType =>
|
|
columnsByName['source_type']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<DateTime> get createdAt =>
|
|
columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
|
|
}
|
|
|
|
i1.GeneratedColumn<String> _column_38(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('source_id', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
i1.GeneratedColumn<String> _column_39(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('source_type', aliasedName, false,
|
|
type: i1.DriftSqlType.string,
|
|
defaultValue: Constant(SourceType.youtube.name));
|
|
|
|
class Shape6 extends i0.VersionedTable {
|
|
Shape6({required super.source, required super.alias}) : super.aliased();
|
|
i1.GeneratedColumn<int> get id =>
|
|
columnsByName['id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<bool> get playing =>
|
|
columnsByName['playing']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<String> get loopMode =>
|
|
columnsByName['loop_mode']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<bool> get shuffled =>
|
|
columnsByName['shuffled']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<String> get collections =>
|
|
columnsByName['collections']! as i1.GeneratedColumn<String>;
|
|
}
|
|
|
|
i1.GeneratedColumn<bool> _column_40(String aliasedName) =>
|
|
i1.GeneratedColumn<bool>('playing', aliasedName, false,
|
|
type: i1.DriftSqlType.bool,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'CHECK ("playing" IN (0, 1))'));
|
|
i1.GeneratedColumn<String> _column_41(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('loop_mode', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
i1.GeneratedColumn<bool> _column_42(String aliasedName) =>
|
|
i1.GeneratedColumn<bool>('shuffled', aliasedName, false,
|
|
type: i1.DriftSqlType.bool,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'CHECK ("shuffled" IN (0, 1))'));
|
|
i1.GeneratedColumn<String> _column_43(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('collections', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
|
|
class Shape7 extends i0.VersionedTable {
|
|
Shape7({required super.source, required super.alias}) : super.aliased();
|
|
i1.GeneratedColumn<int> get id =>
|
|
columnsByName['id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<int> get audioPlayerStateId =>
|
|
columnsByName['audio_player_state_id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<int> get index =>
|
|
columnsByName['index']! as i1.GeneratedColumn<int>;
|
|
}
|
|
|
|
i1.GeneratedColumn<int> _column_44(String aliasedName) =>
|
|
i1.GeneratedColumn<int>('audio_player_state_id', aliasedName, false,
|
|
type: i1.DriftSqlType.int,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'REFERENCES audio_player_state_table (id)'));
|
|
i1.GeneratedColumn<int> _column_45(String aliasedName) =>
|
|
i1.GeneratedColumn<int>('index', aliasedName, false,
|
|
type: i1.DriftSqlType.int);
|
|
|
|
class Shape8 extends i0.VersionedTable {
|
|
Shape8({required super.source, required super.alias}) : super.aliased();
|
|
i1.GeneratedColumn<int> get id =>
|
|
columnsByName['id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<int> get playlistId =>
|
|
columnsByName['playlist_id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<String> get uri =>
|
|
columnsByName['uri']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get extras =>
|
|
columnsByName['extras']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get httpHeaders =>
|
|
columnsByName['http_headers']! as i1.GeneratedColumn<String>;
|
|
}
|
|
|
|
i1.GeneratedColumn<int> _column_46(String aliasedName) =>
|
|
i1.GeneratedColumn<int>('playlist_id', aliasedName, false,
|
|
type: i1.DriftSqlType.int,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'REFERENCES playlist_table (id)'));
|
|
i1.GeneratedColumn<String> _column_47(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('uri', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
i1.GeneratedColumn<String> _column_48(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('extras', aliasedName, true,
|
|
type: i1.DriftSqlType.string);
|
|
i1.GeneratedColumn<String> _column_49(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('http_headers', aliasedName, true,
|
|
type: i1.DriftSqlType.string);
|
|
|
|
class Shape9 extends i0.VersionedTable {
|
|
Shape9({required super.source, required super.alias}) : super.aliased();
|
|
i1.GeneratedColumn<int> get id =>
|
|
columnsByName['id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<DateTime> get createdAt =>
|
|
columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
|
|
i1.GeneratedColumn<String> get type =>
|
|
columnsByName['type']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get itemId =>
|
|
columnsByName['item_id']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get data =>
|
|
columnsByName['data']! as i1.GeneratedColumn<String>;
|
|
}
|
|
|
|
i1.GeneratedColumn<String> _column_50(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('type', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
i1.GeneratedColumn<String> _column_51(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('item_id', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
i1.GeneratedColumn<String> _column_52(String aliasedName) =>
|
|
i1.GeneratedColumn<String>('data', aliasedName, false,
|
|
type: i1.DriftSqlType.string);
|
|
|
|
class Shape10 extends i0.VersionedTable {
|
|
Shape10({required super.source, required super.alias}) : super.aliased();
|
|
i1.GeneratedColumn<int> get id =>
|
|
columnsByName['id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<String> get trackId =>
|
|
columnsByName['track_id']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get data =>
|
|
columnsByName['data']! as i1.GeneratedColumn<String>;
|
|
}
|
|
|
|
final class Schema3 extends i0.VersionedSchema {
|
|
Schema3({required super.database}) : super(version: 3);
|
|
@override
|
|
late final List<i1.DatabaseSchemaEntity> entities = [
|
|
authenticationTable,
|
|
blacklistTable,
|
|
preferencesTable,
|
|
scrobblerTable,
|
|
skipSegmentTable,
|
|
sourceMatchTable,
|
|
audioPlayerStateTable,
|
|
playlistTable,
|
|
playlistMediaTable,
|
|
historyTable,
|
|
lyricsTable,
|
|
uniqueBlacklist,
|
|
uniqTrackMatch,
|
|
];
|
|
late final Shape0 authenticationTable = Shape0(
|
|
source: i0.VersionedTable(
|
|
entityName: 'authentication_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_1,
|
|
_column_2,
|
|
_column_3,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape1 blacklistTable = Shape1(
|
|
source: i0.VersionedTable(
|
|
entityName: 'blacklist_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_4,
|
|
_column_5,
|
|
_column_6,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape11 preferencesTable = Shape11(
|
|
source: i0.VersionedTable(
|
|
entityName: 'preferences_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_7,
|
|
_column_8,
|
|
_column_9,
|
|
_column_10,
|
|
_column_11,
|
|
_column_12,
|
|
_column_13,
|
|
_column_14,
|
|
_column_15,
|
|
_column_16,
|
|
_column_17,
|
|
_column_18,
|
|
_column_19,
|
|
_column_20,
|
|
_column_21,
|
|
_column_22,
|
|
_column_23,
|
|
_column_24,
|
|
_column_25,
|
|
_column_26,
|
|
_column_27,
|
|
_column_28,
|
|
_column_29,
|
|
_column_30,
|
|
_column_31,
|
|
_column_53,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape3 scrobblerTable = Shape3(
|
|
source: i0.VersionedTable(
|
|
entityName: 'scrobbler_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_32,
|
|
_column_33,
|
|
_column_34,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape4 skipSegmentTable = Shape4(
|
|
source: i0.VersionedTable(
|
|
entityName: 'skip_segment_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_35,
|
|
_column_36,
|
|
_column_37,
|
|
_column_32,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape5 sourceMatchTable = Shape5(
|
|
source: i0.VersionedTable(
|
|
entityName: 'source_match_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_37,
|
|
_column_38,
|
|
_column_39,
|
|
_column_32,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape6 audioPlayerStateTable = Shape6(
|
|
source: i0.VersionedTable(
|
|
entityName: 'audio_player_state_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_40,
|
|
_column_41,
|
|
_column_42,
|
|
_column_43,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape7 playlistTable = Shape7(
|
|
source: i0.VersionedTable(
|
|
entityName: 'playlist_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_44,
|
|
_column_45,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape8 playlistMediaTable = Shape8(
|
|
source: i0.VersionedTable(
|
|
entityName: 'playlist_media_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_46,
|
|
_column_47,
|
|
_column_48,
|
|
_column_49,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape9 historyTable = Shape9(
|
|
source: i0.VersionedTable(
|
|
entityName: 'history_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_32,
|
|
_column_50,
|
|
_column_51,
|
|
_column_52,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
late final Shape10 lyricsTable = Shape10(
|
|
source: i0.VersionedTable(
|
|
entityName: 'lyrics_table',
|
|
withoutRowId: false,
|
|
isStrict: false,
|
|
tableConstraints: [],
|
|
columns: [
|
|
_column_0,
|
|
_column_37,
|
|
_column_52,
|
|
],
|
|
attachedDatabase: database,
|
|
),
|
|
alias: null);
|
|
final i1.Index uniqueBlacklist = i1.Index('unique_blacklist',
|
|
'CREATE UNIQUE INDEX unique_blacklist ON blacklist_table (element_type, element_id)');
|
|
final i1.Index uniqTrackMatch = i1.Index('uniq_track_match',
|
|
'CREATE UNIQUE INDEX uniq_track_match ON source_match_table (track_id, source_id, source_type)');
|
|
}
|
|
|
|
class Shape11 extends i0.VersionedTable {
|
|
Shape11({required super.source, required super.alias}) : super.aliased();
|
|
i1.GeneratedColumn<int> get id =>
|
|
columnsByName['id']! as i1.GeneratedColumn<int>;
|
|
i1.GeneratedColumn<String> get audioQuality =>
|
|
columnsByName['audio_quality']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<bool> get albumColorSync =>
|
|
columnsByName['album_color_sync']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get amoledDarkTheme =>
|
|
columnsByName['amoled_dark_theme']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get checkUpdate =>
|
|
columnsByName['check_update']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get normalizeAudio =>
|
|
columnsByName['normalize_audio']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get showSystemTrayIcon =>
|
|
columnsByName['show_system_tray_icon']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get systemTitleBar =>
|
|
columnsByName['system_title_bar']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get skipNonMusic =>
|
|
columnsByName['skip_non_music']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<String> get closeBehavior =>
|
|
columnsByName['close_behavior']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get accentColorScheme =>
|
|
columnsByName['accent_color_scheme']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get layoutMode =>
|
|
columnsByName['layout_mode']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get locale =>
|
|
columnsByName['locale']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get market =>
|
|
columnsByName['market']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get searchMode =>
|
|
columnsByName['search_mode']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get downloadLocation =>
|
|
columnsByName['download_location']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get localLibraryLocation =>
|
|
columnsByName['local_library_location']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get pipedInstance =>
|
|
columnsByName['piped_instance']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get invidiousInstance =>
|
|
columnsByName['invidious_instance']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get themeMode =>
|
|
columnsByName['theme_mode']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get audioSource =>
|
|
columnsByName['audio_source']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get streamMusicCodec =>
|
|
columnsByName['stream_music_codec']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<String> get downloadMusicCodec =>
|
|
columnsByName['download_music_codec']! as i1.GeneratedColumn<String>;
|
|
i1.GeneratedColumn<bool> get discordPresence =>
|
|
columnsByName['discord_presence']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get endlessPlayback =>
|
|
columnsByName['endless_playback']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get enableConnect =>
|
|
columnsByName['enable_connect']! as i1.GeneratedColumn<bool>;
|
|
i1.GeneratedColumn<bool> get cacheMusic =>
|
|
columnsByName['cache_music']! as i1.GeneratedColumn<bool>;
|
|
}
|
|
|
|
i1.GeneratedColumn<bool> _column_53(String aliasedName) =>
|
|
i1.GeneratedColumn<bool>('cache_music', aliasedName, false,
|
|
type: i1.DriftSqlType.bool,
|
|
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
|
|
'CHECK ("cache_music" IN (0, 1))'),
|
|
defaultValue: const Constant(true));
|
|
i0.MigrationStepWithVersion migrationSteps({
|
|
required Future<void> Function(i1.Migrator m, Schema2 schema) from1To2,
|
|
required Future<void> Function(i1.Migrator m, Schema3 schema) from2To3,
|
|
}) {
|
|
return (currentVersion, database) async {
|
|
switch (currentVersion) {
|
|
case 1:
|
|
final schema = Schema2(database: database);
|
|
final migrator = i1.Migrator(database, schema);
|
|
await from1To2(migrator, schema);
|
|
return 2;
|
|
case 2:
|
|
final schema = Schema3(database: database);
|
|
final migrator = i1.Migrator(database, schema);
|
|
await from2To3(migrator, schema);
|
|
return 3;
|
|
default:
|
|
throw ArgumentError.value('Unknown migration from $currentVersion');
|
|
}
|
|
};
|
|
}
|
|
|
|
i1.OnUpgrade stepByStep({
|
|
required Future<void> Function(i1.Migrator m, Schema2 schema) from1To2,
|
|
required Future<void> Function(i1.Migrator m, Schema3 schema) from2To3,
|
|
}) =>
|
|
i0.VersionedSchema.stepByStepHelper(
|
|
step: migrationSteps(
|
|
from1To2: from1To2,
|
|
from2To3: from2To3,
|
|
));
|