// dart format width=80 // ignore_for_file: type=lint import 'package:drift/drift.dart' as i0; import 'package:weblibre/features/bangs/data/models/bang.dart' as i1; import 'package:weblibre/features/bangs/data/models/bang_group.dart' as i2; import 'package:weblibre/features/bangs/data/database/definitions.drift.dart' as i3; import 'package:weblibre/features/bangs/data/database/drift/converters/bang_format.dart' as i4; import 'package:weblibre/features/bangs/data/models/bang_data.dart' as i5; import 'package:drift/internal/modular.dart' as i6; import 'package:weblibre/features/bangs/data/models/search_history_entry.dart' as i7; typedef $BangTableCreateCompanionBuilder = i3.BangCompanion Function({ required String trigger, required i2.BangGroup group, required String websiteName, required String domain, required String urlTemplate, i0.Value category, i0.Value subCategory, i0.Value?> format, i0.Value rowid, }); typedef $BangTableUpdateCompanionBuilder = i3.BangCompanion Function({ i0.Value trigger, i0.Value group, i0.Value websiteName, i0.Value domain, i0.Value urlTemplate, i0.Value category, i0.Value subCategory, i0.Value?> format, i0.Value rowid, }); final class $BangTableReferences extends i0.BaseReferences { $BangTableReferences(super.$_db, super.$_table, super.$_typedResult); static i0.MultiTypedResultKey> _bangFrequencyRefsTable(i0.GeneratedDatabase db) => i0.MultiTypedResultKey.fromTable( i6.ReadDatabaseContainer( db, ).resultSet('bang_frequency'), aliasName: i0.$_aliasNameGenerator( i6.ReadDatabaseContainer(db).resultSet('bang').trigger, i6.ReadDatabaseContainer( db, ).resultSet('bang_frequency').trigger, ), ); i3.$BangFrequencyProcessedTableManager get bangFrequencyRefs { final manager = i3 .$BangFrequencyTableManager( $_db, i6.ReadDatabaseContainer( $_db, ).resultSet('bang_frequency'), ) .filter( (f) => f.trigger.trigger.sqlEquals($_itemColumn('trigger')!), ); final cache = $_typedResult.readTableOrNull(_bangFrequencyRefsTable($_db)); return i0.ProcessedTableManager( manager.$state.copyWith(prefetchedData: cache), ); } static i0.MultiTypedResultKey> _bangHistoryRefsTable(i0.GeneratedDatabase db) => i0.MultiTypedResultKey.fromTable( i6.ReadDatabaseContainer(db).resultSet('bang_history'), aliasName: i0.$_aliasNameGenerator( i6.ReadDatabaseContainer(db).resultSet('bang').trigger, i6.ReadDatabaseContainer( db, ).resultSet('bang_history').trigger, ), ); i3.$BangHistoryProcessedTableManager get bangHistoryRefs { final manager = i3 .$BangHistoryTableManager( $_db, i6.ReadDatabaseContainer( $_db, ).resultSet('bang_history'), ) .filter( (f) => f.trigger.trigger.sqlEquals($_itemColumn('trigger')!), ); final cache = $_typedResult.readTableOrNull(_bangHistoryRefsTable($_db)); return i0.ProcessedTableManager( manager.$state.copyWith(prefetchedData: cache), ); } } class $BangTableFilterComposer extends i0.Composer { $BangTableFilterComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.ColumnFilters get trigger => $composableBuilder( column: $table.trigger, builder: (column) => i0.ColumnFilters(column), ); i0.ColumnWithTypeConverterFilters get group => $composableBuilder( column: $table.group, builder: (column) => i0.ColumnWithTypeConverterFilters(column), ); i0.ColumnFilters get websiteName => $composableBuilder( column: $table.websiteName, builder: (column) => i0.ColumnFilters(column), ); i0.ColumnFilters get domain => $composableBuilder( column: $table.domain, builder: (column) => i0.ColumnFilters(column), ); i0.ColumnFilters get urlTemplate => $composableBuilder( column: $table.urlTemplate, builder: (column) => i0.ColumnFilters(column), ); i0.ColumnFilters get category => $composableBuilder( column: $table.category, builder: (column) => i0.ColumnFilters(column), ); i0.ColumnFilters get subCategory => $composableBuilder( column: $table.subCategory, builder: (column) => i0.ColumnFilters(column), ); i0.ColumnWithTypeConverterFilters< Set?, Set, String > get format => $composableBuilder( column: $table.format, builder: (column) => i0.ColumnWithTypeConverterFilters(column), ); i0.Expression bangFrequencyRefs( i0.Expression Function(i3.$BangFrequencyFilterComposer f) f, ) { final i3.$BangFrequencyFilterComposer composer = $composerBuilder( composer: this, getCurrentColumn: (t) => t.trigger, referencedTable: i6.ReadDatabaseContainer( $db, ).resultSet('bang_frequency'), getReferencedColumn: (t) => t.trigger, builder: ( joinBuilder, { $addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer, }) => i3.$BangFrequencyFilterComposer( $db: $db, $table: i6.ReadDatabaseContainer( $db, ).resultSet('bang_frequency'), $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, joinBuilder: joinBuilder, $removeJoinBuilderFromRootComposer: $removeJoinBuilderFromRootComposer, ), ); return f(composer); } i0.Expression bangHistoryRefs( i0.Expression Function(i3.$BangHistoryFilterComposer f) f, ) { final i3.$BangHistoryFilterComposer composer = $composerBuilder( composer: this, getCurrentColumn: (t) => t.trigger, referencedTable: i6.ReadDatabaseContainer( $db, ).resultSet('bang_history'), getReferencedColumn: (t) => t.trigger, builder: ( joinBuilder, { $addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer, }) => i3.$BangHistoryFilterComposer( $db: $db, $table: i6.ReadDatabaseContainer( $db, ).resultSet('bang_history'), $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, joinBuilder: joinBuilder, $removeJoinBuilderFromRootComposer: $removeJoinBuilderFromRootComposer, ), ); return f(composer); } } class $BangTableOrderingComposer extends i0.Composer { $BangTableOrderingComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.ColumnOrderings get trigger => $composableBuilder( column: $table.trigger, builder: (column) => i0.ColumnOrderings(column), ); i0.ColumnOrderings get group => $composableBuilder( column: $table.group, builder: (column) => i0.ColumnOrderings(column), ); i0.ColumnOrderings get websiteName => $composableBuilder( column: $table.websiteName, builder: (column) => i0.ColumnOrderings(column), ); i0.ColumnOrderings get domain => $composableBuilder( column: $table.domain, builder: (column) => i0.ColumnOrderings(column), ); i0.ColumnOrderings get urlTemplate => $composableBuilder( column: $table.urlTemplate, builder: (column) => i0.ColumnOrderings(column), ); i0.ColumnOrderings get category => $composableBuilder( column: $table.category, builder: (column) => i0.ColumnOrderings(column), ); i0.ColumnOrderings get subCategory => $composableBuilder( column: $table.subCategory, builder: (column) => i0.ColumnOrderings(column), ); i0.ColumnOrderings get format => $composableBuilder( column: $table.format, builder: (column) => i0.ColumnOrderings(column), ); } class $BangTableAnnotationComposer extends i0.Composer { $BangTableAnnotationComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.GeneratedColumn get trigger => $composableBuilder(column: $table.trigger, builder: (column) => column); i0.GeneratedColumnWithTypeConverter get group => $composableBuilder(column: $table.group, builder: (column) => column); i0.GeneratedColumn get websiteName => $composableBuilder( column: $table.websiteName, builder: (column) => column, ); i0.GeneratedColumn get domain => $composableBuilder(column: $table.domain, builder: (column) => column); i0.GeneratedColumn get urlTemplate => $composableBuilder( column: $table.urlTemplate, builder: (column) => column, ); i0.GeneratedColumn get category => $composableBuilder(column: $table.category, builder: (column) => column); i0.GeneratedColumn get subCategory => $composableBuilder( column: $table.subCategory, builder: (column) => column, ); i0.GeneratedColumnWithTypeConverter?, String> get format => $composableBuilder(column: $table.format, builder: (column) => column); i0.Expression bangFrequencyRefs( i0.Expression Function(i3.$BangFrequencyAnnotationComposer a) f, ) { final i3.$BangFrequencyAnnotationComposer composer = $composerBuilder( composer: this, getCurrentColumn: (t) => t.trigger, referencedTable: i6.ReadDatabaseContainer( $db, ).resultSet('bang_frequency'), getReferencedColumn: (t) => t.trigger, builder: ( joinBuilder, { $addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer, }) => i3.$BangFrequencyAnnotationComposer( $db: $db, $table: i6.ReadDatabaseContainer( $db, ).resultSet('bang_frequency'), $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, joinBuilder: joinBuilder, $removeJoinBuilderFromRootComposer: $removeJoinBuilderFromRootComposer, ), ); return f(composer); } i0.Expression bangHistoryRefs( i0.Expression Function(i3.$BangHistoryAnnotationComposer a) f, ) { final i3.$BangHistoryAnnotationComposer composer = $composerBuilder( composer: this, getCurrentColumn: (t) => t.trigger, referencedTable: i6.ReadDatabaseContainer( $db, ).resultSet('bang_history'), getReferencedColumn: (t) => t.trigger, builder: ( joinBuilder, { $addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer, }) => i3.$BangHistoryAnnotationComposer( $db: $db, $table: i6.ReadDatabaseContainer( $db, ).resultSet('bang_history'), $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, joinBuilder: joinBuilder, $removeJoinBuilderFromRootComposer: $removeJoinBuilderFromRootComposer, ), ); return f(composer); } } class $BangTableTableManager extends i0.RootTableManager< i0.GeneratedDatabase, i3.BangTable, i1.Bang, i3.$BangTableFilterComposer, i3.$BangTableOrderingComposer, i3.$BangTableAnnotationComposer, $BangTableCreateCompanionBuilder, $BangTableUpdateCompanionBuilder, (i1.Bang, i3.$BangTableReferences), i1.Bang, i0.PrefetchHooks Function({ bool bangFrequencyRefs, bool bangHistoryRefs, }) > { $BangTableTableManager(i0.GeneratedDatabase db, i3.BangTable table) : super( i0.TableManagerState( db: db, table: table, createFilteringComposer: () => i3.$BangTableFilterComposer($db: db, $table: table), createOrderingComposer: () => i3.$BangTableOrderingComposer($db: db, $table: table), createComputedFieldComposer: () => i3.$BangTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ i0.Value trigger = const i0.Value.absent(), i0.Value group = const i0.Value.absent(), i0.Value websiteName = const i0.Value.absent(), i0.Value domain = const i0.Value.absent(), i0.Value urlTemplate = const i0.Value.absent(), i0.Value category = const i0.Value.absent(), i0.Value subCategory = const i0.Value.absent(), i0.Value?> format = const i0.Value.absent(), i0.Value rowid = const i0.Value.absent(), }) => i3.BangCompanion( trigger: trigger, group: group, websiteName: websiteName, domain: domain, urlTemplate: urlTemplate, category: category, subCategory: subCategory, format: format, rowid: rowid, ), createCompanionCallback: ({ required String trigger, required i2.BangGroup group, required String websiteName, required String domain, required String urlTemplate, i0.Value category = const i0.Value.absent(), i0.Value subCategory = const i0.Value.absent(), i0.Value?> format = const i0.Value.absent(), i0.Value rowid = const i0.Value.absent(), }) => i3.BangCompanion.insert( trigger: trigger, group: group, websiteName: websiteName, domain: domain, urlTemplate: urlTemplate, category: category, subCategory: subCategory, format: format, rowid: rowid, ), withReferenceMapper: (p0) => p0 .map( (e) => (e.readTable(table), i3.$BangTableReferences(db, table, e)), ) .toList(), prefetchHooksCallback: ({bangFrequencyRefs = false, bangHistoryRefs = false}) { return i0.PrefetchHooks( db: db, explicitlyWatchedTables: [ if (bangFrequencyRefs) i6.ReadDatabaseContainer( db, ).resultSet('bang_frequency'), if (bangHistoryRefs) i6.ReadDatabaseContainer( db, ).resultSet('bang_history'), ], addJoins: null, getPrefetchedDataCallback: (items) async { return [ if (bangFrequencyRefs) await i0.$_getPrefetchedData< i1.Bang, i3.BangTable, i3.BangFrequencyData >( currentTable: table, referencedTable: i3.$BangTableReferences ._bangFrequencyRefsTable(db), managerFromTypedResult: (p0) => i3 .$BangTableReferences(db, table, p0) .bangFrequencyRefs, referencedItemsForCurrentItem: (item, referencedItems) => referencedItems.where( (e) => e.trigger == item.trigger, ), typedResults: items, ), if (bangHistoryRefs) await i0.$_getPrefetchedData< i1.Bang, i3.BangTable, i3.BangHistoryData >( currentTable: table, referencedTable: i3.$BangTableReferences ._bangHistoryRefsTable(db), managerFromTypedResult: (p0) => i3 .$BangTableReferences(db, table, p0) .bangHistoryRefs, referencedItemsForCurrentItem: (item, referencedItems) => referencedItems.where( (e) => e.trigger == item.trigger, ), typedResults: items, ), ]; }, ); }, ), ); } typedef $BangTableProcessedTableManager = i0.ProcessedTableManager< i0.GeneratedDatabase, i3.BangTable, i1.Bang, i3.$BangTableFilterComposer, i3.$BangTableOrderingComposer, i3.$BangTableAnnotationComposer, $BangTableCreateCompanionBuilder, $BangTableUpdateCompanionBuilder, (i1.Bang, i3.$BangTableReferences), i1.Bang, i0.PrefetchHooks Function({bool bangFrequencyRefs, bool bangHistoryRefs}) >; typedef $BangSyncCreateCompanionBuilder = i3.BangSyncCompanion Function({ i0.Value group, required DateTime lastSync, }); typedef $BangSyncUpdateCompanionBuilder = i3.BangSyncCompanion Function({ i0.Value group, i0.Value lastSync, }); class $BangSyncFilterComposer extends i0.Composer { $BangSyncFilterComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.ColumnWithTypeConverterFilters get group => $composableBuilder( column: $table.group, builder: (column) => i0.ColumnWithTypeConverterFilters(column), ); i0.ColumnFilters get lastSync => $composableBuilder( column: $table.lastSync, builder: (column) => i0.ColumnFilters(column), ); } class $BangSyncOrderingComposer extends i0.Composer { $BangSyncOrderingComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.ColumnOrderings get group => $composableBuilder( column: $table.group, builder: (column) => i0.ColumnOrderings(column), ); i0.ColumnOrderings get lastSync => $composableBuilder( column: $table.lastSync, builder: (column) => i0.ColumnOrderings(column), ); } class $BangSyncAnnotationComposer extends i0.Composer { $BangSyncAnnotationComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.GeneratedColumnWithTypeConverter get group => $composableBuilder(column: $table.group, builder: (column) => column); i0.GeneratedColumn get lastSync => $composableBuilder(column: $table.lastSync, builder: (column) => column); } class $BangSyncTableManager extends i0.RootTableManager< i0.GeneratedDatabase, i3.BangSync, i3.BangSyncData, i3.$BangSyncFilterComposer, i3.$BangSyncOrderingComposer, i3.$BangSyncAnnotationComposer, $BangSyncCreateCompanionBuilder, $BangSyncUpdateCompanionBuilder, ( i3.BangSyncData, i0.BaseReferences< i0.GeneratedDatabase, i3.BangSync, i3.BangSyncData >, ), i3.BangSyncData, i0.PrefetchHooks Function() > { $BangSyncTableManager(i0.GeneratedDatabase db, i3.BangSync table) : super( i0.TableManagerState( db: db, table: table, createFilteringComposer: () => i3.$BangSyncFilterComposer($db: db, $table: table), createOrderingComposer: () => i3.$BangSyncOrderingComposer($db: db, $table: table), createComputedFieldComposer: () => i3.$BangSyncAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ i0.Value group = const i0.Value.absent(), i0.Value lastSync = const i0.Value.absent(), }) => i3.BangSyncCompanion(group: group, lastSync: lastSync), createCompanionCallback: ({ i0.Value group = const i0.Value.absent(), required DateTime lastSync, }) => i3.BangSyncCompanion.insert(group: group, lastSync: lastSync), withReferenceMapper: (p0) => p0 .map((e) => (e.readTable(table), i0.BaseReferences(db, table, e))) .toList(), prefetchHooksCallback: null, ), ); } typedef $BangSyncProcessedTableManager = i0.ProcessedTableManager< i0.GeneratedDatabase, i3.BangSync, i3.BangSyncData, i3.$BangSyncFilterComposer, i3.$BangSyncOrderingComposer, i3.$BangSyncAnnotationComposer, $BangSyncCreateCompanionBuilder, $BangSyncUpdateCompanionBuilder, ( i3.BangSyncData, i0.BaseReferences, ), i3.BangSyncData, i0.PrefetchHooks Function() >; typedef $BangFrequencyCreateCompanionBuilder = i3.BangFrequencyCompanion Function({ required String trigger, required int frequency, required DateTime lastUsed, i0.Value rowid, }); typedef $BangFrequencyUpdateCompanionBuilder = i3.BangFrequencyCompanion Function({ i0.Value trigger, i0.Value frequency, i0.Value lastUsed, i0.Value rowid, }); final class $BangFrequencyReferences extends i0.BaseReferences< i0.GeneratedDatabase, i3.BangFrequency, i3.BangFrequencyData > { $BangFrequencyReferences(super.$_db, super.$_table, super.$_typedResult); static i3.BangTable _triggerTable(i0.GeneratedDatabase db) => i6.ReadDatabaseContainer(db) .resultSet('bang') .createAlias( i0.$_aliasNameGenerator( i6.ReadDatabaseContainer( db, ).resultSet('bang_frequency').trigger, i6.ReadDatabaseContainer( db, ).resultSet('bang').trigger, ), ); i3.$BangTableProcessedTableManager get trigger { final $_column = $_itemColumn('trigger')!; final manager = i3 .$BangTableTableManager( $_db, i6.ReadDatabaseContainer($_db).resultSet('bang'), ) .filter((f) => f.trigger.sqlEquals($_column)); final item = $_typedResult.readTableOrNull(_triggerTable($_db)); if (item == null) return manager; return i0.ProcessedTableManager( manager.$state.copyWith(prefetchedData: [item]), ); } } class $BangFrequencyFilterComposer extends i0.Composer { $BangFrequencyFilterComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.ColumnFilters get frequency => $composableBuilder( column: $table.frequency, builder: (column) => i0.ColumnFilters(column), ); i0.ColumnFilters get lastUsed => $composableBuilder( column: $table.lastUsed, builder: (column) => i0.ColumnFilters(column), ); i3.$BangTableFilterComposer get trigger { final i3.$BangTableFilterComposer composer = $composerBuilder( composer: this, getCurrentColumn: (t) => t.trigger, referencedTable: i6.ReadDatabaseContainer( $db, ).resultSet('bang'), getReferencedColumn: (t) => t.trigger, builder: ( joinBuilder, { $addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer, }) => i3.$BangTableFilterComposer( $db: $db, $table: i6.ReadDatabaseContainer( $db, ).resultSet('bang'), $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, joinBuilder: joinBuilder, $removeJoinBuilderFromRootComposer: $removeJoinBuilderFromRootComposer, ), ); return composer; } } class $BangFrequencyOrderingComposer extends i0.Composer { $BangFrequencyOrderingComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.ColumnOrderings get frequency => $composableBuilder( column: $table.frequency, builder: (column) => i0.ColumnOrderings(column), ); i0.ColumnOrderings get lastUsed => $composableBuilder( column: $table.lastUsed, builder: (column) => i0.ColumnOrderings(column), ); i3.$BangTableOrderingComposer get trigger { final i3.$BangTableOrderingComposer composer = $composerBuilder( composer: this, getCurrentColumn: (t) => t.trigger, referencedTable: i6.ReadDatabaseContainer( $db, ).resultSet('bang'), getReferencedColumn: (t) => t.trigger, builder: ( joinBuilder, { $addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer, }) => i3.$BangTableOrderingComposer( $db: $db, $table: i6.ReadDatabaseContainer( $db, ).resultSet('bang'), $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, joinBuilder: joinBuilder, $removeJoinBuilderFromRootComposer: $removeJoinBuilderFromRootComposer, ), ); return composer; } } class $BangFrequencyAnnotationComposer extends i0.Composer { $BangFrequencyAnnotationComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.GeneratedColumn get frequency => $composableBuilder(column: $table.frequency, builder: (column) => column); i0.GeneratedColumn get lastUsed => $composableBuilder(column: $table.lastUsed, builder: (column) => column); i3.$BangTableAnnotationComposer get trigger { final i3.$BangTableAnnotationComposer composer = $composerBuilder( composer: this, getCurrentColumn: (t) => t.trigger, referencedTable: i6.ReadDatabaseContainer( $db, ).resultSet('bang'), getReferencedColumn: (t) => t.trigger, builder: ( joinBuilder, { $addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer, }) => i3.$BangTableAnnotationComposer( $db: $db, $table: i6.ReadDatabaseContainer( $db, ).resultSet('bang'), $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, joinBuilder: joinBuilder, $removeJoinBuilderFromRootComposer: $removeJoinBuilderFromRootComposer, ), ); return composer; } } class $BangFrequencyTableManager extends i0.RootTableManager< i0.GeneratedDatabase, i3.BangFrequency, i3.BangFrequencyData, i3.$BangFrequencyFilterComposer, i3.$BangFrequencyOrderingComposer, i3.$BangFrequencyAnnotationComposer, $BangFrequencyCreateCompanionBuilder, $BangFrequencyUpdateCompanionBuilder, (i3.BangFrequencyData, i3.$BangFrequencyReferences), i3.BangFrequencyData, i0.PrefetchHooks Function({bool trigger}) > { $BangFrequencyTableManager(i0.GeneratedDatabase db, i3.BangFrequency table) : super( i0.TableManagerState( db: db, table: table, createFilteringComposer: () => i3.$BangFrequencyFilterComposer($db: db, $table: table), createOrderingComposer: () => i3.$BangFrequencyOrderingComposer($db: db, $table: table), createComputedFieldComposer: () => i3.$BangFrequencyAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ i0.Value trigger = const i0.Value.absent(), i0.Value frequency = const i0.Value.absent(), i0.Value lastUsed = const i0.Value.absent(), i0.Value rowid = const i0.Value.absent(), }) => i3.BangFrequencyCompanion( trigger: trigger, frequency: frequency, lastUsed: lastUsed, rowid: rowid, ), createCompanionCallback: ({ required String trigger, required int frequency, required DateTime lastUsed, i0.Value rowid = const i0.Value.absent(), }) => i3.BangFrequencyCompanion.insert( trigger: trigger, frequency: frequency, lastUsed: lastUsed, rowid: rowid, ), withReferenceMapper: (p0) => p0 .map( (e) => ( e.readTable(table), i3.$BangFrequencyReferences(db, table, e), ), ) .toList(), prefetchHooksCallback: ({trigger = false}) { return i0.PrefetchHooks( db: db, explicitlyWatchedTables: [], addJoins: < T extends i0.TableManagerState< dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic > >(state) { if (trigger) { state = state.withJoin( currentTable: table, currentColumn: table.trigger, referencedTable: i3.$BangFrequencyReferences ._triggerTable(db), referencedColumn: i3.$BangFrequencyReferences ._triggerTable(db) .trigger, ) as T; } return state; }, getPrefetchedDataCallback: (items) async { return []; }, ); }, ), ); } typedef $BangFrequencyProcessedTableManager = i0.ProcessedTableManager< i0.GeneratedDatabase, i3.BangFrequency, i3.BangFrequencyData, i3.$BangFrequencyFilterComposer, i3.$BangFrequencyOrderingComposer, i3.$BangFrequencyAnnotationComposer, $BangFrequencyCreateCompanionBuilder, $BangFrequencyUpdateCompanionBuilder, (i3.BangFrequencyData, i3.$BangFrequencyReferences), i3.BangFrequencyData, i0.PrefetchHooks Function({bool trigger}) >; typedef $BangHistoryCreateCompanionBuilder = i3.BangHistoryCompanion Function({ required String searchQuery, required String trigger, required DateTime searchDate, i0.Value rowid, }); typedef $BangHistoryUpdateCompanionBuilder = i3.BangHistoryCompanion Function({ i0.Value searchQuery, i0.Value trigger, i0.Value searchDate, i0.Value rowid, }); final class $BangHistoryReferences extends i0.BaseReferences< i0.GeneratedDatabase, i3.BangHistory, i3.BangHistoryData > { $BangHistoryReferences(super.$_db, super.$_table, super.$_typedResult); static i3.BangTable _triggerTable(i0.GeneratedDatabase db) => i6.ReadDatabaseContainer(db) .resultSet('bang') .createAlias( i0.$_aliasNameGenerator( i6.ReadDatabaseContainer( db, ).resultSet('bang_history').trigger, i6.ReadDatabaseContainer( db, ).resultSet('bang').trigger, ), ); i3.$BangTableProcessedTableManager get trigger { final $_column = $_itemColumn('trigger')!; final manager = i3 .$BangTableTableManager( $_db, i6.ReadDatabaseContainer($_db).resultSet('bang'), ) .filter((f) => f.trigger.sqlEquals($_column)); final item = $_typedResult.readTableOrNull(_triggerTable($_db)); if (item == null) return manager; return i0.ProcessedTableManager( manager.$state.copyWith(prefetchedData: [item]), ); } } class $BangHistoryFilterComposer extends i0.Composer { $BangHistoryFilterComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.ColumnFilters get searchQuery => $composableBuilder( column: $table.searchQuery, builder: (column) => i0.ColumnFilters(column), ); i0.ColumnFilters get searchDate => $composableBuilder( column: $table.searchDate, builder: (column) => i0.ColumnFilters(column), ); i3.$BangTableFilterComposer get trigger { final i3.$BangTableFilterComposer composer = $composerBuilder( composer: this, getCurrentColumn: (t) => t.trigger, referencedTable: i6.ReadDatabaseContainer( $db, ).resultSet('bang'), getReferencedColumn: (t) => t.trigger, builder: ( joinBuilder, { $addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer, }) => i3.$BangTableFilterComposer( $db: $db, $table: i6.ReadDatabaseContainer( $db, ).resultSet('bang'), $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, joinBuilder: joinBuilder, $removeJoinBuilderFromRootComposer: $removeJoinBuilderFromRootComposer, ), ); return composer; } } class $BangHistoryOrderingComposer extends i0.Composer { $BangHistoryOrderingComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.ColumnOrderings get searchQuery => $composableBuilder( column: $table.searchQuery, builder: (column) => i0.ColumnOrderings(column), ); i0.ColumnOrderings get searchDate => $composableBuilder( column: $table.searchDate, builder: (column) => i0.ColumnOrderings(column), ); i3.$BangTableOrderingComposer get trigger { final i3.$BangTableOrderingComposer composer = $composerBuilder( composer: this, getCurrentColumn: (t) => t.trigger, referencedTable: i6.ReadDatabaseContainer( $db, ).resultSet('bang'), getReferencedColumn: (t) => t.trigger, builder: ( joinBuilder, { $addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer, }) => i3.$BangTableOrderingComposer( $db: $db, $table: i6.ReadDatabaseContainer( $db, ).resultSet('bang'), $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, joinBuilder: joinBuilder, $removeJoinBuilderFromRootComposer: $removeJoinBuilderFromRootComposer, ), ); return composer; } } class $BangHistoryAnnotationComposer extends i0.Composer { $BangHistoryAnnotationComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.GeneratedColumn get searchQuery => $composableBuilder( column: $table.searchQuery, builder: (column) => column, ); i0.GeneratedColumn get searchDate => $composableBuilder( column: $table.searchDate, builder: (column) => column, ); i3.$BangTableAnnotationComposer get trigger { final i3.$BangTableAnnotationComposer composer = $composerBuilder( composer: this, getCurrentColumn: (t) => t.trigger, referencedTable: i6.ReadDatabaseContainer( $db, ).resultSet('bang'), getReferencedColumn: (t) => t.trigger, builder: ( joinBuilder, { $addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer, }) => i3.$BangTableAnnotationComposer( $db: $db, $table: i6.ReadDatabaseContainer( $db, ).resultSet('bang'), $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, joinBuilder: joinBuilder, $removeJoinBuilderFromRootComposer: $removeJoinBuilderFromRootComposer, ), ); return composer; } } class $BangHistoryTableManager extends i0.RootTableManager< i0.GeneratedDatabase, i3.BangHistory, i3.BangHistoryData, i3.$BangHistoryFilterComposer, i3.$BangHistoryOrderingComposer, i3.$BangHistoryAnnotationComposer, $BangHistoryCreateCompanionBuilder, $BangHistoryUpdateCompanionBuilder, (i3.BangHistoryData, i3.$BangHistoryReferences), i3.BangHistoryData, i0.PrefetchHooks Function({bool trigger}) > { $BangHistoryTableManager(i0.GeneratedDatabase db, i3.BangHistory table) : super( i0.TableManagerState( db: db, table: table, createFilteringComposer: () => i3.$BangHistoryFilterComposer($db: db, $table: table), createOrderingComposer: () => i3.$BangHistoryOrderingComposer($db: db, $table: table), createComputedFieldComposer: () => i3.$BangHistoryAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ i0.Value searchQuery = const i0.Value.absent(), i0.Value trigger = const i0.Value.absent(), i0.Value searchDate = const i0.Value.absent(), i0.Value rowid = const i0.Value.absent(), }) => i3.BangHistoryCompanion( searchQuery: searchQuery, trigger: trigger, searchDate: searchDate, rowid: rowid, ), createCompanionCallback: ({ required String searchQuery, required String trigger, required DateTime searchDate, i0.Value rowid = const i0.Value.absent(), }) => i3.BangHistoryCompanion.insert( searchQuery: searchQuery, trigger: trigger, searchDate: searchDate, rowid: rowid, ), withReferenceMapper: (p0) => p0 .map( (e) => ( e.readTable(table), i3.$BangHistoryReferences(db, table, e), ), ) .toList(), prefetchHooksCallback: ({trigger = false}) { return i0.PrefetchHooks( db: db, explicitlyWatchedTables: [], addJoins: < T extends i0.TableManagerState< dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic > >(state) { if (trigger) { state = state.withJoin( currentTable: table, currentColumn: table.trigger, referencedTable: i3.$BangHistoryReferences ._triggerTable(db), referencedColumn: i3.$BangHistoryReferences ._triggerTable(db) .trigger, ) as T; } return state; }, getPrefetchedDataCallback: (items) async { return []; }, ); }, ), ); } typedef $BangHistoryProcessedTableManager = i0.ProcessedTableManager< i0.GeneratedDatabase, i3.BangHistory, i3.BangHistoryData, i3.$BangHistoryFilterComposer, i3.$BangHistoryOrderingComposer, i3.$BangHistoryAnnotationComposer, $BangHistoryCreateCompanionBuilder, $BangHistoryUpdateCompanionBuilder, (i3.BangHistoryData, i3.$BangHistoryReferences), i3.BangHistoryData, i0.PrefetchHooks Function({bool trigger}) >; typedef $BangFtsCreateCompanionBuilder = i3.BangFtsCompanion Function({ required String trigger, required String websiteName, i0.Value rowid, }); typedef $BangFtsUpdateCompanionBuilder = i3.BangFtsCompanion Function({ i0.Value trigger, i0.Value websiteName, i0.Value rowid, }); class $BangFtsFilterComposer extends i0.Composer { $BangFtsFilterComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.ColumnFilters get trigger => $composableBuilder( column: $table.trigger, builder: (column) => i0.ColumnFilters(column), ); i0.ColumnFilters get websiteName => $composableBuilder( column: $table.websiteName, builder: (column) => i0.ColumnFilters(column), ); } class $BangFtsOrderingComposer extends i0.Composer { $BangFtsOrderingComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.ColumnOrderings get trigger => $composableBuilder( column: $table.trigger, builder: (column) => i0.ColumnOrderings(column), ); i0.ColumnOrderings get websiteName => $composableBuilder( column: $table.websiteName, builder: (column) => i0.ColumnOrderings(column), ); } class $BangFtsAnnotationComposer extends i0.Composer { $BangFtsAnnotationComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); i0.GeneratedColumn get trigger => $composableBuilder(column: $table.trigger, builder: (column) => column); i0.GeneratedColumn get websiteName => $composableBuilder( column: $table.websiteName, builder: (column) => column, ); } class $BangFtsTableManager extends i0.RootTableManager< i0.GeneratedDatabase, i3.BangFts, i3.BangFt, i3.$BangFtsFilterComposer, i3.$BangFtsOrderingComposer, i3.$BangFtsAnnotationComposer, $BangFtsCreateCompanionBuilder, $BangFtsUpdateCompanionBuilder, ( i3.BangFt, i0.BaseReferences, ), i3.BangFt, i0.PrefetchHooks Function() > { $BangFtsTableManager(i0.GeneratedDatabase db, i3.BangFts table) : super( i0.TableManagerState( db: db, table: table, createFilteringComposer: () => i3.$BangFtsFilterComposer($db: db, $table: table), createOrderingComposer: () => i3.$BangFtsOrderingComposer($db: db, $table: table), createComputedFieldComposer: () => i3.$BangFtsAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ i0.Value trigger = const i0.Value.absent(), i0.Value websiteName = const i0.Value.absent(), i0.Value rowid = const i0.Value.absent(), }) => i3.BangFtsCompanion( trigger: trigger, websiteName: websiteName, rowid: rowid, ), createCompanionCallback: ({ required String trigger, required String websiteName, i0.Value rowid = const i0.Value.absent(), }) => i3.BangFtsCompanion.insert( trigger: trigger, websiteName: websiteName, rowid: rowid, ), withReferenceMapper: (p0) => p0 .map((e) => (e.readTable(table), i0.BaseReferences(db, table, e))) .toList(), prefetchHooksCallback: null, ), ); } typedef $BangFtsProcessedTableManager = i0.ProcessedTableManager< i0.GeneratedDatabase, i3.BangFts, i3.BangFt, i3.$BangFtsFilterComposer, i3.$BangFtsOrderingComposer, i3.$BangFtsAnnotationComposer, $BangFtsCreateCompanionBuilder, $BangFtsUpdateCompanionBuilder, ( i3.BangFt, i0.BaseReferences, ), i3.BangFt, i0.PrefetchHooks Function() >; class BangTable extends i0.Table with i0.TableInfo { @override final i0.GeneratedDatabase attachedDatabase; final String? _alias; BangTable(this.attachedDatabase, [this._alias]); late final i0.GeneratedColumn trigger = i0.GeneratedColumn( 'trigger', aliasedName, false, type: i0.DriftSqlType.string, requiredDuringInsert: true, $customConstraints: 'PRIMARY KEY NOT NULL', ); late final i0.GeneratedColumnWithTypeConverter group = i0.GeneratedColumn( 'group', aliasedName, false, type: i0.DriftSqlType.int, requiredDuringInsert: true, $customConstraints: 'NOT NULL', ).withConverter(i3.BangTable.$convertergroup); late final i0.GeneratedColumn websiteName = i0.GeneratedColumn( 'website_name', aliasedName, false, type: i0.DriftSqlType.string, requiredDuringInsert: true, $customConstraints: 'NOT NULL', ); late final i0.GeneratedColumn domain = i0.GeneratedColumn( 'domain', aliasedName, false, type: i0.DriftSqlType.string, requiredDuringInsert: true, $customConstraints: 'NOT NULL', ); late final i0.GeneratedColumn urlTemplate = i0.GeneratedColumn( 'url_template', aliasedName, false, type: i0.DriftSqlType.string, requiredDuringInsert: true, $customConstraints: 'NOT NULL', ); late final i0.GeneratedColumn category = i0.GeneratedColumn( 'category', aliasedName, true, type: i0.DriftSqlType.string, requiredDuringInsert: false, $customConstraints: '', ); late final i0.GeneratedColumn subCategory = i0.GeneratedColumn( 'sub_category', aliasedName, true, type: i0.DriftSqlType.string, requiredDuringInsert: false, $customConstraints: '', ); late final i0.GeneratedColumnWithTypeConverter?, String> format = i0.GeneratedColumn( 'format', aliasedName, true, type: i0.DriftSqlType.string, requiredDuringInsert: false, $customConstraints: '', ).withConverter?>(i3.BangTable.$converterformat); @override List get $columns => [ trigger, group, websiteName, domain, urlTemplate, category, subCategory, format, ]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; static const String $name = 'bang'; @override Set get $primaryKey => {trigger}; @override i1.Bang map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return i1.Bang( websiteName: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}website_name'], )!, domain: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}domain'], )!, trigger: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}trigger'], )!, urlTemplate: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}url_template'], )!, group: i3.BangTable.$convertergroup.fromSql( attachedDatabase.typeMapping.read( i0.DriftSqlType.int, data['${effectivePrefix}group'], )!, ), category: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}category'], ), subCategory: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}sub_category'], ), format: i3.BangTable.$converterformat.fromSql( attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}format'], ), ), ); } @override BangTable createAlias(String alias) { return BangTable(attachedDatabase, alias); } static i0.JsonTypeConverter2 $convertergroup = const i0.EnumIndexConverter(i2.BangGroup.values); static i0.TypeConverter?, String?> $converterformat = const i4.BangFormatConverter(); @override bool get dontWriteConstraints => true; } class BangCompanion extends i0.UpdateCompanion { final i0.Value trigger; final i0.Value group; final i0.Value websiteName; final i0.Value domain; final i0.Value urlTemplate; final i0.Value category; final i0.Value subCategory; final i0.Value?> format; final i0.Value rowid; const BangCompanion({ this.trigger = const i0.Value.absent(), this.group = const i0.Value.absent(), this.websiteName = const i0.Value.absent(), this.domain = const i0.Value.absent(), this.urlTemplate = const i0.Value.absent(), this.category = const i0.Value.absent(), this.subCategory = const i0.Value.absent(), this.format = const i0.Value.absent(), this.rowid = const i0.Value.absent(), }); BangCompanion.insert({ required String trigger, required i2.BangGroup group, required String websiteName, required String domain, required String urlTemplate, this.category = const i0.Value.absent(), this.subCategory = const i0.Value.absent(), this.format = const i0.Value.absent(), this.rowid = const i0.Value.absent(), }) : trigger = i0.Value(trigger), group = i0.Value(group), websiteName = i0.Value(websiteName), domain = i0.Value(domain), urlTemplate = i0.Value(urlTemplate); static i0.Insertable custom({ i0.Expression? trigger, i0.Expression? group, i0.Expression? websiteName, i0.Expression? domain, i0.Expression? urlTemplate, i0.Expression? category, i0.Expression? subCategory, i0.Expression? format, i0.Expression? rowid, }) { return i0.RawValuesInsertable({ if (trigger != null) 'trigger': trigger, if (group != null) 'group': group, if (websiteName != null) 'website_name': websiteName, if (domain != null) 'domain': domain, if (urlTemplate != null) 'url_template': urlTemplate, if (category != null) 'category': category, if (subCategory != null) 'sub_category': subCategory, if (format != null) 'format': format, if (rowid != null) 'rowid': rowid, }); } i3.BangCompanion copyWith({ i0.Value? trigger, i0.Value? group, i0.Value? websiteName, i0.Value? domain, i0.Value? urlTemplate, i0.Value? category, i0.Value? subCategory, i0.Value?>? format, i0.Value? rowid, }) { return i3.BangCompanion( trigger: trigger ?? this.trigger, group: group ?? this.group, websiteName: websiteName ?? this.websiteName, domain: domain ?? this.domain, urlTemplate: urlTemplate ?? this.urlTemplate, category: category ?? this.category, subCategory: subCategory ?? this.subCategory, format: format ?? this.format, rowid: rowid ?? this.rowid, ); } @override Map toColumns(bool nullToAbsent) { final map = {}; if (trigger.present) { map['trigger'] = i0.Variable(trigger.value); } if (group.present) { map['group'] = i0.Variable( i3.BangTable.$convertergroup.toSql(group.value), ); } if (websiteName.present) { map['website_name'] = i0.Variable(websiteName.value); } if (domain.present) { map['domain'] = i0.Variable(domain.value); } if (urlTemplate.present) { map['url_template'] = i0.Variable(urlTemplate.value); } if (category.present) { map['category'] = i0.Variable(category.value); } if (subCategory.present) { map['sub_category'] = i0.Variable(subCategory.value); } if (format.present) { map['format'] = i0.Variable( i3.BangTable.$converterformat.toSql(format.value), ); } if (rowid.present) { map['rowid'] = i0.Variable(rowid.value); } return map; } @override String toString() { return (StringBuffer('BangCompanion(') ..write('trigger: $trigger, ') ..write('group: $group, ') ..write('websiteName: $websiteName, ') ..write('domain: $domain, ') ..write('urlTemplate: $urlTemplate, ') ..write('category: $category, ') ..write('subCategory: $subCategory, ') ..write('format: $format, ') ..write('rowid: $rowid') ..write(')')) .toString(); } } class BangSync extends i0.Table with i0.TableInfo { @override final i0.GeneratedDatabase attachedDatabase; final String? _alias; BangSync(this.attachedDatabase, [this._alias]); late final i0.GeneratedColumnWithTypeConverter group = i0.GeneratedColumn( 'group', aliasedName, false, type: i0.DriftSqlType.int, requiredDuringInsert: false, $customConstraints: 'PRIMARY KEY NOT NULL', ).withConverter(i3.BangSync.$convertergroup); late final i0.GeneratedColumn lastSync = i0.GeneratedColumn( 'last_sync', aliasedName, false, type: i0.DriftSqlType.dateTime, requiredDuringInsert: true, $customConstraints: 'NOT NULL', ); @override List get $columns => [group, lastSync]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; static const String $name = 'bang_sync'; @override Set get $primaryKey => {group}; @override i3.BangSyncData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return i3.BangSyncData( group: i3.BangSync.$convertergroup.fromSql( attachedDatabase.typeMapping.read( i0.DriftSqlType.int, data['${effectivePrefix}group'], )!, ), lastSync: attachedDatabase.typeMapping.read( i0.DriftSqlType.dateTime, data['${effectivePrefix}last_sync'], )!, ); } @override BangSync createAlias(String alias) { return BangSync(attachedDatabase, alias); } static i0.JsonTypeConverter2 $convertergroup = const i0.EnumIndexConverter(i2.BangGroup.values); @override bool get dontWriteConstraints => true; } class BangSyncData extends i0.DataClass implements i0.Insertable { final i2.BangGroup group; final DateTime lastSync; const BangSyncData({required this.group, required this.lastSync}); @override Map toColumns(bool nullToAbsent) { final map = {}; { map['group'] = i0.Variable(i3.BangSync.$convertergroup.toSql(group)); } map['last_sync'] = i0.Variable(lastSync); return map; } factory BangSyncData.fromJson( Map json, { i0.ValueSerializer? serializer, }) { serializer ??= i0.driftRuntimeOptions.defaultSerializer; return BangSyncData( group: i3.BangSync.$convertergroup.fromJson( serializer.fromJson(json['group']), ), lastSync: serializer.fromJson(json['last_sync']), ); } @override Map toJson({i0.ValueSerializer? serializer}) { serializer ??= i0.driftRuntimeOptions.defaultSerializer; return { 'group': serializer.toJson( i3.BangSync.$convertergroup.toJson(group), ), 'last_sync': serializer.toJson(lastSync), }; } i3.BangSyncData copyWith({i2.BangGroup? group, DateTime? lastSync}) => i3.BangSyncData( group: group ?? this.group, lastSync: lastSync ?? this.lastSync, ); BangSyncData copyWithCompanion(i3.BangSyncCompanion data) { return BangSyncData( group: data.group.present ? data.group.value : this.group, lastSync: data.lastSync.present ? data.lastSync.value : this.lastSync, ); } @override String toString() { return (StringBuffer('BangSyncData(') ..write('group: $group, ') ..write('lastSync: $lastSync') ..write(')')) .toString(); } @override int get hashCode => Object.hash(group, lastSync); @override bool operator ==(Object other) => identical(this, other) || (other is i3.BangSyncData && other.group == this.group && other.lastSync == this.lastSync); } class BangSyncCompanion extends i0.UpdateCompanion { final i0.Value group; final i0.Value lastSync; const BangSyncCompanion({ this.group = const i0.Value.absent(), this.lastSync = const i0.Value.absent(), }); BangSyncCompanion.insert({ this.group = const i0.Value.absent(), required DateTime lastSync, }) : lastSync = i0.Value(lastSync); static i0.Insertable custom({ i0.Expression? group, i0.Expression? lastSync, }) { return i0.RawValuesInsertable({ if (group != null) 'group': group, if (lastSync != null) 'last_sync': lastSync, }); } i3.BangSyncCompanion copyWith({ i0.Value? group, i0.Value? lastSync, }) { return i3.BangSyncCompanion( group: group ?? this.group, lastSync: lastSync ?? this.lastSync, ); } @override Map toColumns(bool nullToAbsent) { final map = {}; if (group.present) { map['group'] = i0.Variable( i3.BangSync.$convertergroup.toSql(group.value), ); } if (lastSync.present) { map['last_sync'] = i0.Variable(lastSync.value); } return map; } @override String toString() { return (StringBuffer('BangSyncCompanion(') ..write('group: $group, ') ..write('lastSync: $lastSync') ..write(')')) .toString(); } } class BangFrequency extends i0.Table with i0.TableInfo { @override final i0.GeneratedDatabase attachedDatabase; final String? _alias; BangFrequency(this.attachedDatabase, [this._alias]); late final i0.GeneratedColumn trigger = i0.GeneratedColumn( 'trigger', aliasedName, false, type: i0.DriftSqlType.string, requiredDuringInsert: true, $customConstraints: 'PRIMARY KEY NOT NULL REFERENCES bang("trigger")ON DELETE CASCADE', ); late final i0.GeneratedColumn frequency = i0.GeneratedColumn( 'frequency', aliasedName, false, type: i0.DriftSqlType.int, requiredDuringInsert: true, $customConstraints: 'NOT NULL', ); late final i0.GeneratedColumn lastUsed = i0.GeneratedColumn( 'last_used', aliasedName, false, type: i0.DriftSqlType.dateTime, requiredDuringInsert: true, $customConstraints: 'NOT NULL', ); @override List get $columns => [trigger, frequency, lastUsed]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; static const String $name = 'bang_frequency'; @override Set get $primaryKey => {trigger}; @override i3.BangFrequencyData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return i3.BangFrequencyData( trigger: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}trigger'], )!, frequency: attachedDatabase.typeMapping.read( i0.DriftSqlType.int, data['${effectivePrefix}frequency'], )!, lastUsed: attachedDatabase.typeMapping.read( i0.DriftSqlType.dateTime, data['${effectivePrefix}last_used'], )!, ); } @override BangFrequency createAlias(String alias) { return BangFrequency(attachedDatabase, alias); } @override bool get dontWriteConstraints => true; } class BangFrequencyData extends i0.DataClass implements i0.Insertable { final String trigger; final int frequency; final DateTime lastUsed; const BangFrequencyData({ required this.trigger, required this.frequency, required this.lastUsed, }); @override Map toColumns(bool nullToAbsent) { final map = {}; map['trigger'] = i0.Variable(trigger); map['frequency'] = i0.Variable(frequency); map['last_used'] = i0.Variable(lastUsed); return map; } factory BangFrequencyData.fromJson( Map json, { i0.ValueSerializer? serializer, }) { serializer ??= i0.driftRuntimeOptions.defaultSerializer; return BangFrequencyData( trigger: serializer.fromJson(json['trigger']), frequency: serializer.fromJson(json['frequency']), lastUsed: serializer.fromJson(json['last_used']), ); } @override Map toJson({i0.ValueSerializer? serializer}) { serializer ??= i0.driftRuntimeOptions.defaultSerializer; return { 'trigger': serializer.toJson(trigger), 'frequency': serializer.toJson(frequency), 'last_used': serializer.toJson(lastUsed), }; } i3.BangFrequencyData copyWith({ String? trigger, int? frequency, DateTime? lastUsed, }) => i3.BangFrequencyData( trigger: trigger ?? this.trigger, frequency: frequency ?? this.frequency, lastUsed: lastUsed ?? this.lastUsed, ); BangFrequencyData copyWithCompanion(i3.BangFrequencyCompanion data) { return BangFrequencyData( trigger: data.trigger.present ? data.trigger.value : this.trigger, frequency: data.frequency.present ? data.frequency.value : this.frequency, lastUsed: data.lastUsed.present ? data.lastUsed.value : this.lastUsed, ); } @override String toString() { return (StringBuffer('BangFrequencyData(') ..write('trigger: $trigger, ') ..write('frequency: $frequency, ') ..write('lastUsed: $lastUsed') ..write(')')) .toString(); } @override int get hashCode => Object.hash(trigger, frequency, lastUsed); @override bool operator ==(Object other) => identical(this, other) || (other is i3.BangFrequencyData && other.trigger == this.trigger && other.frequency == this.frequency && other.lastUsed == this.lastUsed); } class BangFrequencyCompanion extends i0.UpdateCompanion { final i0.Value trigger; final i0.Value frequency; final i0.Value lastUsed; final i0.Value rowid; const BangFrequencyCompanion({ this.trigger = const i0.Value.absent(), this.frequency = const i0.Value.absent(), this.lastUsed = const i0.Value.absent(), this.rowid = const i0.Value.absent(), }); BangFrequencyCompanion.insert({ required String trigger, required int frequency, required DateTime lastUsed, this.rowid = const i0.Value.absent(), }) : trigger = i0.Value(trigger), frequency = i0.Value(frequency), lastUsed = i0.Value(lastUsed); static i0.Insertable custom({ i0.Expression? trigger, i0.Expression? frequency, i0.Expression? lastUsed, i0.Expression? rowid, }) { return i0.RawValuesInsertable({ if (trigger != null) 'trigger': trigger, if (frequency != null) 'frequency': frequency, if (lastUsed != null) 'last_used': lastUsed, if (rowid != null) 'rowid': rowid, }); } i3.BangFrequencyCompanion copyWith({ i0.Value? trigger, i0.Value? frequency, i0.Value? lastUsed, i0.Value? rowid, }) { return i3.BangFrequencyCompanion( trigger: trigger ?? this.trigger, frequency: frequency ?? this.frequency, lastUsed: lastUsed ?? this.lastUsed, rowid: rowid ?? this.rowid, ); } @override Map toColumns(bool nullToAbsent) { final map = {}; if (trigger.present) { map['trigger'] = i0.Variable(trigger.value); } if (frequency.present) { map['frequency'] = i0.Variable(frequency.value); } if (lastUsed.present) { map['last_used'] = i0.Variable(lastUsed.value); } if (rowid.present) { map['rowid'] = i0.Variable(rowid.value); } return map; } @override String toString() { return (StringBuffer('BangFrequencyCompanion(') ..write('trigger: $trigger, ') ..write('frequency: $frequency, ') ..write('lastUsed: $lastUsed, ') ..write('rowid: $rowid') ..write(')')) .toString(); } } class BangHistory extends i0.Table with i0.TableInfo { @override final i0.GeneratedDatabase attachedDatabase; final String? _alias; BangHistory(this.attachedDatabase, [this._alias]); late final i0.GeneratedColumn searchQuery = i0.GeneratedColumn( 'search_query', aliasedName, false, type: i0.DriftSqlType.string, requiredDuringInsert: true, $customConstraints: 'UNIQUE NOT NULL', ); late final i0.GeneratedColumn trigger = i0.GeneratedColumn( 'trigger', aliasedName, false, type: i0.DriftSqlType.string, requiredDuringInsert: true, $customConstraints: 'NOT NULL REFERENCES bang("trigger")', ); late final i0.GeneratedColumn searchDate = i0.GeneratedColumn( 'search_date', aliasedName, false, type: i0.DriftSqlType.dateTime, requiredDuringInsert: true, $customConstraints: 'NOT NULL', ); @override List get $columns => [searchQuery, trigger, searchDate]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; static const String $name = 'bang_history'; @override Set get $primaryKey => const {}; @override i3.BangHistoryData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return i3.BangHistoryData( searchQuery: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}search_query'], )!, trigger: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}trigger'], )!, searchDate: attachedDatabase.typeMapping.read( i0.DriftSqlType.dateTime, data['${effectivePrefix}search_date'], )!, ); } @override BangHistory createAlias(String alias) { return BangHistory(attachedDatabase, alias); } @override bool get dontWriteConstraints => true; } class BangHistoryData extends i0.DataClass implements i0.Insertable { final String searchQuery; final String trigger; final DateTime searchDate; const BangHistoryData({ required this.searchQuery, required this.trigger, required this.searchDate, }); @override Map toColumns(bool nullToAbsent) { final map = {}; map['search_query'] = i0.Variable(searchQuery); map['trigger'] = i0.Variable(trigger); map['search_date'] = i0.Variable(searchDate); return map; } factory BangHistoryData.fromJson( Map json, { i0.ValueSerializer? serializer, }) { serializer ??= i0.driftRuntimeOptions.defaultSerializer; return BangHistoryData( searchQuery: serializer.fromJson(json['search_query']), trigger: serializer.fromJson(json['trigger']), searchDate: serializer.fromJson(json['search_date']), ); } @override Map toJson({i0.ValueSerializer? serializer}) { serializer ??= i0.driftRuntimeOptions.defaultSerializer; return { 'search_query': serializer.toJson(searchQuery), 'trigger': serializer.toJson(trigger), 'search_date': serializer.toJson(searchDate), }; } i3.BangHistoryData copyWith({ String? searchQuery, String? trigger, DateTime? searchDate, }) => i3.BangHistoryData( searchQuery: searchQuery ?? this.searchQuery, trigger: trigger ?? this.trigger, searchDate: searchDate ?? this.searchDate, ); BangHistoryData copyWithCompanion(i3.BangHistoryCompanion data) { return BangHistoryData( searchQuery: data.searchQuery.present ? data.searchQuery.value : this.searchQuery, trigger: data.trigger.present ? data.trigger.value : this.trigger, searchDate: data.searchDate.present ? data.searchDate.value : this.searchDate, ); } @override String toString() { return (StringBuffer('BangHistoryData(') ..write('searchQuery: $searchQuery, ') ..write('trigger: $trigger, ') ..write('searchDate: $searchDate') ..write(')')) .toString(); } @override int get hashCode => Object.hash(searchQuery, trigger, searchDate); @override bool operator ==(Object other) => identical(this, other) || (other is i3.BangHistoryData && other.searchQuery == this.searchQuery && other.trigger == this.trigger && other.searchDate == this.searchDate); } class BangHistoryCompanion extends i0.UpdateCompanion { final i0.Value searchQuery; final i0.Value trigger; final i0.Value searchDate; final i0.Value rowid; const BangHistoryCompanion({ this.searchQuery = const i0.Value.absent(), this.trigger = const i0.Value.absent(), this.searchDate = const i0.Value.absent(), this.rowid = const i0.Value.absent(), }); BangHistoryCompanion.insert({ required String searchQuery, required String trigger, required DateTime searchDate, this.rowid = const i0.Value.absent(), }) : searchQuery = i0.Value(searchQuery), trigger = i0.Value(trigger), searchDate = i0.Value(searchDate); static i0.Insertable custom({ i0.Expression? searchQuery, i0.Expression? trigger, i0.Expression? searchDate, i0.Expression? rowid, }) { return i0.RawValuesInsertable({ if (searchQuery != null) 'search_query': searchQuery, if (trigger != null) 'trigger': trigger, if (searchDate != null) 'search_date': searchDate, if (rowid != null) 'rowid': rowid, }); } i3.BangHistoryCompanion copyWith({ i0.Value? searchQuery, i0.Value? trigger, i0.Value? searchDate, i0.Value? rowid, }) { return i3.BangHistoryCompanion( searchQuery: searchQuery ?? this.searchQuery, trigger: trigger ?? this.trigger, searchDate: searchDate ?? this.searchDate, rowid: rowid ?? this.rowid, ); } @override Map toColumns(bool nullToAbsent) { final map = {}; if (searchQuery.present) { map['search_query'] = i0.Variable(searchQuery.value); } if (trigger.present) { map['trigger'] = i0.Variable(trigger.value); } if (searchDate.present) { map['search_date'] = i0.Variable(searchDate.value); } if (rowid.present) { map['rowid'] = i0.Variable(rowid.value); } return map; } @override String toString() { return (StringBuffer('BangHistoryCompanion(') ..write('searchQuery: $searchQuery, ') ..write('trigger: $trigger, ') ..write('searchDate: $searchDate, ') ..write('rowid: $rowid') ..write(')')) .toString(); } } class BangFts extends i0.Table with i0.TableInfo, i0.VirtualTableInfo { @override final i0.GeneratedDatabase attachedDatabase; final String? _alias; BangFts(this.attachedDatabase, [this._alias]); late final i0.GeneratedColumn trigger = i0.GeneratedColumn( 'trigger', aliasedName, false, type: i0.DriftSqlType.string, requiredDuringInsert: true, $customConstraints: '', ); late final i0.GeneratedColumn websiteName = i0.GeneratedColumn( 'website_name', aliasedName, false, type: i0.DriftSqlType.string, requiredDuringInsert: true, $customConstraints: '', ); @override List get $columns => [trigger, websiteName]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; static const String $name = 'bang_fts'; @override Set get $primaryKey => const {}; @override i3.BangFt map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return i3.BangFt( trigger: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}trigger'], )!, websiteName: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}website_name'], )!, ); } @override BangFts createAlias(String alias) { return BangFts(attachedDatabase, alias); } @override bool get dontWriteConstraints => true; @override String get moduleAndArgs => 'fts5(trigger, website_name, content=bang, prefix=\'2 3\')'; } class BangFt extends i0.DataClass implements i0.Insertable { final String trigger; final String websiteName; const BangFt({required this.trigger, required this.websiteName}); @override Map toColumns(bool nullToAbsent) { final map = {}; map['trigger'] = i0.Variable(trigger); map['website_name'] = i0.Variable(websiteName); return map; } factory BangFt.fromJson( Map json, { i0.ValueSerializer? serializer, }) { serializer ??= i0.driftRuntimeOptions.defaultSerializer; return BangFt( trigger: serializer.fromJson(json['trigger']), websiteName: serializer.fromJson(json['website_name']), ); } @override Map toJson({i0.ValueSerializer? serializer}) { serializer ??= i0.driftRuntimeOptions.defaultSerializer; return { 'trigger': serializer.toJson(trigger), 'website_name': serializer.toJson(websiteName), }; } i3.BangFt copyWith({String? trigger, String? websiteName}) => i3.BangFt( trigger: trigger ?? this.trigger, websiteName: websiteName ?? this.websiteName, ); BangFt copyWithCompanion(i3.BangFtsCompanion data) { return BangFt( trigger: data.trigger.present ? data.trigger.value : this.trigger, websiteName: data.websiteName.present ? data.websiteName.value : this.websiteName, ); } @override String toString() { return (StringBuffer('BangFt(') ..write('trigger: $trigger, ') ..write('websiteName: $websiteName') ..write(')')) .toString(); } @override int get hashCode => Object.hash(trigger, websiteName); @override bool operator ==(Object other) => identical(this, other) || (other is i3.BangFt && other.trigger == this.trigger && other.websiteName == this.websiteName); } class BangFtsCompanion extends i0.UpdateCompanion { final i0.Value trigger; final i0.Value websiteName; final i0.Value rowid; const BangFtsCompanion({ this.trigger = const i0.Value.absent(), this.websiteName = const i0.Value.absent(), this.rowid = const i0.Value.absent(), }); BangFtsCompanion.insert({ required String trigger, required String websiteName, this.rowid = const i0.Value.absent(), }) : trigger = i0.Value(trigger), websiteName = i0.Value(websiteName); static i0.Insertable custom({ i0.Expression? trigger, i0.Expression? websiteName, i0.Expression? rowid, }) { return i0.RawValuesInsertable({ if (trigger != null) 'trigger': trigger, if (websiteName != null) 'website_name': websiteName, if (rowid != null) 'rowid': rowid, }); } i3.BangFtsCompanion copyWith({ i0.Value? trigger, i0.Value? websiteName, i0.Value? rowid, }) { return i3.BangFtsCompanion( trigger: trigger ?? this.trigger, websiteName: websiteName ?? this.websiteName, rowid: rowid ?? this.rowid, ); } @override Map toColumns(bool nullToAbsent) { final map = {}; if (trigger.present) { map['trigger'] = i0.Variable(trigger.value); } if (websiteName.present) { map['website_name'] = i0.Variable(websiteName.value); } if (rowid.present) { map['rowid'] = i0.Variable(rowid.value); } return map; } @override String toString() { return (StringBuffer('BangFtsCompanion(') ..write('trigger: $trigger, ') ..write('websiteName: $websiteName, ') ..write('rowid: $rowid') ..write(')')) .toString(); } } class BangDataView extends i0.ViewInfo implements i0.HasResultSet { final String? _alias; @override final i0.GeneratedDatabase attachedDatabase; BangDataView(this.attachedDatabase, [this._alias]); @override List get $columns => [ trigger, group, websiteName, domain, urlTemplate, category, subCategory, format, frequency, lastUsed, ]; @override String get aliasedName => _alias ?? entityName; @override String get entityName => 'bang_data_view'; @override Map get createViewStatements => { i0.SqlDialect.sqlite: 'CREATE VIEW bang_data_view AS SELECT b.*, bf.frequency, bf.last_used FROM bang AS b LEFT JOIN bang_frequency AS bf ON b."trigger" = bf."trigger"', }; @override BangDataView get asDslTable => this; @override i5.BangData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return i5.BangData( websiteName: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}website_name'], )!, domain: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}domain'], )!, trigger: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}trigger'], )!, urlTemplate: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}url_template'], )!, category: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}category'], ), subCategory: attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}sub_category'], ), format: i3.BangTable.$converterformat.fromSql( attachedDatabase.typeMapping.read( i0.DriftSqlType.string, data['${effectivePrefix}format'], ), ), frequency: attachedDatabase.typeMapping.read( i0.DriftSqlType.int, data['${effectivePrefix}frequency'], ), lastUsed: attachedDatabase.typeMapping.read( i0.DriftSqlType.dateTime, data['${effectivePrefix}last_used'], ), ); } late final i0.GeneratedColumn trigger = i0.GeneratedColumn( 'trigger', aliasedName, false, type: i0.DriftSqlType.string, ); late final i0.GeneratedColumnWithTypeConverter group = i0.GeneratedColumn( 'group', aliasedName, false, type: i0.DriftSqlType.int, ).withConverter(i3.BangTable.$convertergroup); late final i0.GeneratedColumn websiteName = i0.GeneratedColumn( 'website_name', aliasedName, false, type: i0.DriftSqlType.string, ); late final i0.GeneratedColumn domain = i0.GeneratedColumn( 'domain', aliasedName, false, type: i0.DriftSqlType.string, ); late final i0.GeneratedColumn urlTemplate = i0.GeneratedColumn( 'url_template', aliasedName, false, type: i0.DriftSqlType.string, ); late final i0.GeneratedColumn category = i0.GeneratedColumn( 'category', aliasedName, true, type: i0.DriftSqlType.string, ); late final i0.GeneratedColumn subCategory = i0.GeneratedColumn( 'sub_category', aliasedName, true, type: i0.DriftSqlType.string, ); late final i0.GeneratedColumnWithTypeConverter?, String> format = i0.GeneratedColumn( 'format', aliasedName, true, type: i0.DriftSqlType.string, ).withConverter?>(i3.BangTable.$converterformat); late final i0.GeneratedColumn frequency = i0.GeneratedColumn( 'frequency', aliasedName, true, type: i0.DriftSqlType.int, ); late final i0.GeneratedColumn lastUsed = i0.GeneratedColumn( 'last_used', aliasedName, true, type: i0.DriftSqlType.dateTime, ); @override BangDataView createAlias(String alias) { return BangDataView(attachedDatabase, alias); } @override i0.Query? get query => null; @override Set get readTables => const {'bang', 'bang_frequency'}; } i0.Trigger get bangAfterInsert => i0.Trigger( 'CREATE TRIGGER bang_after_insert AFTER INSERT ON bang BEGIN INSERT INTO bang_fts ("rowid", "trigger", website_name) VALUES (new."rowid", new."trigger", new.website_name);END', 'bang_after_insert', ); i0.Trigger get bangAfterDelete => i0.Trigger( 'CREATE TRIGGER bang_after_delete AFTER DELETE ON bang BEGIN INSERT INTO bang_fts (bang_fts, "rowid", "trigger", website_name) VALUES (\'delete\', old."rowid", old."trigger", old.website_name);END', 'bang_after_delete', ); i0.Trigger get bangAfterUpdate => i0.Trigger( 'CREATE TRIGGER bang_after_update AFTER UPDATE ON bang BEGIN INSERT INTO bang_fts (bang_fts, "rowid", "trigger", website_name) VALUES (\'delete\', old."rowid", old."trigger", old.website_name);INSERT INTO bang_fts ("rowid", "trigger", website_name) VALUES (new."rowid", new."trigger", new.website_name);END', 'bang_after_update', ); class DefinitionsDrift extends i6.ModularAccessor { DefinitionsDrift(i0.GeneratedDatabase db) : super(db); Future optimizeFtsIndex() { return customInsert( 'INSERT INTO bang_fts (bang_fts) VALUES (\'optimize\')', variables: [], updates: {bangFts}, ); } i0.Selectable queryBangs({required String query}) { return customSelect( 'WITH weights AS (SELECT 10.0 AS "trigger", 5.0 AS website_name) SELECT b.*, bf.frequency, bf.last_used, bm25(bang_fts, weights."trigger", weights.website_name) AS weighted_rank FROM bang_fts(?1)AS fts INNER JOIN bang AS b ON b."rowid" = fts."rowid" LEFT JOIN bang_frequency AS bf ON b."trigger" = bf."trigger" CROSS JOIN weights ORDER BY weighted_rank ASC, bf.frequency NULLS LAST', variables: [i0.Variable(query)], readsFrom: {bangFrequency, bangFts, bang}, ).map( (i0.QueryRow row) => i5.BangData( websiteName: row.read('website_name'), domain: row.read('domain'), trigger: row.read('trigger'), urlTemplate: row.read('url_template'), category: row.readNullable('category'), subCategory: row.readNullable('sub_category'), format: i3.BangTable.$converterformat.fromSql( row.readNullable('format'), ), frequency: row.readNullable('frequency'), lastUsed: row.readNullable('last_used'), ), ); } i0.Selectable queryBangsBasic({required String query}) { return customSelect( 'WITH weights AS (SELECT 10.0 AS "trigger", 5.0 AS website_name) SELECT b.*, bf.frequency, bf.last_used, bm25(bang_fts, weights."trigger", weights.website_name) AS weighted_rank FROM bang_fts AS fts INNER JOIN bang AS b ON b."rowid" = fts."rowid" LEFT JOIN bang_frequency AS bf ON b."trigger" = bf."trigger" CROSS JOIN weights WHERE fts."trigger" LIKE ?1 OR fts.website_name LIKE ?1 ORDER BY weighted_rank ASC, bf.frequency NULLS LAST', variables: [i0.Variable(query)], readsFrom: {bangFrequency, bangFts, bang}, ).map( (i0.QueryRow row) => i5.BangData( websiteName: row.read('website_name'), domain: row.read('domain'), trigger: row.read('trigger'), urlTemplate: row.read('url_template'), category: row.readNullable('category'), subCategory: row.readNullable('sub_category'), format: i3.BangTable.$converterformat.fromSql( row.readNullable('format'), ), frequency: row.readNullable('frequency'), lastUsed: row.readNullable('last_used'), ), ); } i0.Selectable categoriesJson() { return customSelect( 'WITH categories AS (SELECT b.category, json_group_array(DISTINCT b.sub_category ORDER BY b.sub_category)AS sub_categories FROM bang AS b WHERE b.category IS NOT NULL AND b.sub_category IS NOT NULL GROUP BY b.category ORDER BY b.category) SELECT json_group_object(c.category, json(c.sub_categories)) AS categories_json FROM categories AS c', variables: [], readsFrom: {bang}, ).map((i0.QueryRow row) => row.read('categories_json')); } i0.Selectable searchHistoryEntries({ required int limit, }) { return customSelect( 'SELECT * FROM bang_history ORDER BY search_date DESC LIMIT ?1', variables: [i0.Variable(limit)], readsFrom: {bangHistory}, ).map( (i0.QueryRow row) => i7.SearchHistoryEntry( searchQuery: row.read('search_query'), trigger: row.read('trigger'), searchDate: row.read('search_date'), ), ); } Future evictHistoryEntries({required int limit}) { return customUpdate( 'DELETE FROM bang_history WHERE "rowid" IN (SELECT "rowid" FROM bang_history ORDER BY search_date DESC LIMIT -1 OFFSET ?1)', variables: [i0.Variable(limit)], updates: {bangHistory}, updateKind: i0.UpdateKind.delete, ); } i3.BangFts get bangFts => i6.ReadDatabaseContainer( attachedDatabase, ).resultSet('bang_fts'); i3.BangTable get bang => i6.ReadDatabaseContainer( attachedDatabase, ).resultSet('bang'); i3.BangFrequency get bangFrequency => i6.ReadDatabaseContainer( attachedDatabase, ).resultSet('bang_frequency'); i3.BangHistory get bangHistory => i6.ReadDatabaseContainer( attachedDatabase, ).resultSet('bang_history'); }