diff --git a/app/lib/features/bangs/data/database/daos/bang.dart b/app/lib/features/bangs/data/database/daos/bang.dart index d0563b7e..33a41939 100644 --- a/app/lib/features/bangs/data/database/daos/bang.dart +++ b/app/lib/features/bangs/data/database/daos/bang.dart @@ -25,6 +25,7 @@ import 'package:weblibre/features/bangs/data/database/definitions.drift.dart'; import 'package:weblibre/features/bangs/data/models/bang.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'; @DriftAccessor() class BangDao extends DatabaseAccessor with $BangDaoMixin { @@ -110,11 +111,11 @@ class BangDao extends DatabaseAccessor with $BangDaoMixin { return selectable; } - Future increaseBangFrequency(BangGroup group, String trigger) { + Future increaseBangFrequency(BangKey key) { return db.bangFrequency.insertOne( BangFrequencyCompanion.insert( - trigger: trigger, - group: group, + trigger: key.trigger, + group: key.group, frequency: 1, lastUsed: DateTime.now(), ), diff --git a/app/lib/features/bangs/domain/providers/search.dart b/app/lib/features/bangs/domain/providers/search.dart index 7d7a58f8..c6de6891 100644 --- a/app/lib/features/bangs/domain/providers/search.dart +++ b/app/lib/features/bangs/domain/providers/search.dart @@ -34,7 +34,7 @@ class BangSearch extends _$BangSearch { Future triggerBangSearch(BangData bang, String searchQuery) async { final bangDataNotifier = ref.read(bangDataRepositoryProvider.notifier); - await bangDataNotifier.increaseFrequency(bang.group, bang.trigger); + await bangDataNotifier.increaseFrequency(bang.toKey()); await bangDataNotifier.addSearchEntry( bang.group, bang.trigger, diff --git a/app/lib/features/bangs/domain/providers/search.g.dart b/app/lib/features/bangs/domain/providers/search.g.dart index 1e1a0426..17aaca0c 100644 --- a/app/lib/features/bangs/domain/providers/search.g.dart +++ b/app/lib/features/bangs/domain/providers/search.g.dart @@ -33,7 +33,7 @@ final class BangSearchProvider BangSearch create() => BangSearch(); } -String _$bangSearchHash() => r'66080335f1677e6a4636c41dd5619de3828375e6'; +String _$bangSearchHash() => r'cd8c6ec433a61979e5feb09014739be92180513b'; abstract class _$BangSearch extends $StreamNotifier> { Stream> build(); diff --git a/app/lib/features/bangs/domain/repositories/data.dart b/app/lib/features/bangs/domain/repositories/data.dart index f9cc78e7..3d106b55 100644 --- a/app/lib/features/bangs/domain/repositories/data.dart +++ b/app/lib/features/bangs/domain/repositories/data.dart @@ -106,11 +106,8 @@ class BangDataRepository extends _$BangDataRepository { .watch(); } - Future increaseFrequency(BangGroup group, String trigger) { - return ref - .read(bangDatabaseProvider) - .bangDao - .increaseBangFrequency(group, trigger); + Future increaseFrequency(BangKey key) { + return ref.read(bangDatabaseProvider).bangDao.increaseBangFrequency(key); } Future addSearchEntry( @@ -149,7 +146,9 @@ class BangDataRepository extends _$BangDataRepository { return ref.read(bangDatabaseProvider).bangDao.upsertBang(bang); } - Future deleteBang(BangGroup group, String trigger) { - return ref.read(bangDatabaseProvider).syncDao.deleteBangs(group, [trigger]); + Future deleteBang(BangKey key) { + return ref.read(bangDatabaseProvider).syncDao.deleteBangs(key.group, [ + key.trigger, + ]); } } diff --git a/app/lib/features/bangs/domain/repositories/data.g.dart b/app/lib/features/bangs/domain/repositories/data.g.dart index 32b763e8..58d251f8 100644 --- a/app/lib/features/bangs/domain/repositories/data.g.dart +++ b/app/lib/features/bangs/domain/repositories/data.g.dart @@ -42,7 +42,7 @@ final class BangDataRepositoryProvider } String _$bangDataRepositoryHash() => - r'0001f3e21fc1bff4fc942e6e468fb580cf2afe4b'; + r'f071d3c4ab8218d52d55acb3de8e01fd7a204e4d'; abstract class _$BangDataRepository extends $Notifier { void build(); diff --git a/app/lib/features/bangs/presentation/screens/edit.dart b/app/lib/features/bangs/presentation/screens/edit.dart index f5fc5e11..9ed51a40 100644 --- a/app/lib/features/bangs/presentation/screens/edit.dart +++ b/app/lib/features/bangs/presentation/screens/edit.dart @@ -6,6 +6,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:nullability/nullability.dart'; import 'package:weblibre/features/bangs/data/models/bang.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/domain/providers/bangs.dart'; import 'package:weblibre/features/bangs/domain/repositories/data.dart'; import 'package:weblibre/utils/form_validators.dart'; @@ -64,7 +65,12 @@ class EditBangScreen extends HookConsumerWidget { initialBang!.trigger != bang.trigger) { await ref .read(bangDataRepositoryProvider.notifier) - .deleteBang(BangGroup.user, initialBang!.trigger); + .deleteBang( + BangKey( + group: BangGroup.user, + trigger: initialBang!.trigger, + ), + ); } await ref @@ -288,7 +294,12 @@ class EditBangScreen extends HookConsumerWidget { if (result == true) { await ref .read(bangDataRepositoryProvider.notifier) - .deleteBang(BangGroup.user, initialBang!.trigger); + .deleteBang( + BangKey( + group: BangGroup.user, + trigger: initialBang!.trigger, + ), + ); if (context.mounted) { context.pop(); diff --git a/app/lib/features/bangs/presentation/screens/user.dart b/app/lib/features/bangs/presentation/screens/user.dart index 25ba4d91..97c176da 100644 --- a/app/lib/features/bangs/presentation/screens/user.dart +++ b/app/lib/features/bangs/presentation/screens/user.dart @@ -5,6 +5,7 @@ import 'package:flutter_slidable/flutter_slidable.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:weblibre/core/routing/routes.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/domain/providers/bangs.dart'; import 'package:weblibre/features/bangs/domain/repositories/data.dart'; import 'package:weblibre/features/bangs/presentation/widgets/bang_details.dart'; @@ -35,7 +36,12 @@ class UserBangs extends HookConsumerWidget { onPressed: (context) async { await ref .read(bangDataRepositoryProvider.notifier) - .deleteBang(BangGroup.user, bang.trigger); + .deleteBang( + BangKey( + group: BangGroup.user, + trigger: bang.trigger, + ), + ); }, backgroundColor: Theme.of( context,