swith to bang composite key

This commit is contained in:
Fabian Freund
2025-09-29 12:51:35 +02:00
parent d215aad3e4
commit 8c05eff173
29 changed files with 433 additions and 700 deletions
@@ -23,6 +23,7 @@ import 'package:drift/drift.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:weblibre/features/bangs/data/models/bang_data.dart';
import 'package:weblibre/features/bangs/data/models/bang_group.dart';
import 'package:weblibre/features/bangs/data/models/bang_key.dart';
import 'package:weblibre/features/bangs/data/models/search_history_entry.dart';
import 'package:weblibre/features/bangs/data/providers.dart';
@@ -33,12 +34,12 @@ class BangDataRepository extends _$BangDataRepository {
@override
void build() {}
Stream<BangData?> watchBang(String? trigger) {
if (trigger != null) {
Stream<BangData?> watchBang(BangKey? key) {
if (key != null) {
return ref
.read(bangDatabaseProvider)
.bangDao
.getBangData(trigger)
.getBangData(key.group, key.trigger)
.watchSingleOrNull();
} else {
return Stream.value(null);
@@ -104,14 +105,15 @@ class BangDataRepository extends _$BangDataRepository {
.watch();
}
Future<void> increaseFrequency(String trigger) {
Future<void> increaseFrequency(BangGroup group, String trigger) {
return ref
.read(bangDatabaseProvider)
.bangDao
.increaseBangFrequency(trigger);
.increaseBangFrequency(group, trigger);
}
Future<void> addSearchEntry(
BangGroup group,
String trigger,
String searchQuery, {
required int maxEntryCount,
@@ -119,7 +121,7 @@ class BangDataRepository extends _$BangDataRepository {
final db = ref.read(bangDatabaseProvider);
//Pack in a transaction to bundle rebuilds of watch() queries
return db.transaction(() async {
await db.bangDao.addSearchEntry(trigger, searchQuery);
await db.bangDao.addSearchEntry(group, trigger, searchQuery);
await db.definitionsDrift.evictHistoryEntries(limit: maxEntryCount);
});
}
@@ -42,7 +42,7 @@ final class BangDataRepositoryProvider
}
String _$bangDataRepositoryHash() =>
r'5e25ce123d4667a0b12316f5b771b6776c40f280';
r'93f1338da86c693f524df377fe01d0ecf7f5ff80';
abstract class _$BangDataRepository extends $Notifier<void> {
void build();