refactoring

This commit is contained in:
Fabian Freund
2025-02-20 12:27:34 +01:00
parent b81fc1cc42
commit 490e13000b
138 changed files with 1392 additions and 3251 deletions
@@ -12,11 +12,11 @@ class MessagesDao extends DatabaseAccessor<ChatDatabase>
with _$MessagesDaoMixin {
MessagesDao(super.db);
Selectable<int> messageCount({required String chatId}) {
Selectable<int> getMessageCount({required String chatId}) {
return db.chatMessage.count(where: (row) => row.chatId.equals(chatId));
}
Selectable<ChatMessageData> chatMessages({required String chatId}) {
Selectable<ChatMessageData> getChatMessages({required String chatId}) {
return db.chatMessage.select()
..where((t) => t.chatId.equals(chatId))
..orderBy([(row) => OrderingTerm(expression: row.orderKey)]);
@@ -32,7 +32,7 @@ class MessagesDao extends DatabaseAccessor<ChatDatabase>
.map((row) => row.read(existsExpression)!);
}
SingleOrNullSelectable<int> messageIndex({
SingleOrNullSelectable<int> getMessageIndex({
required String chatId,
required String messageId,
}) {
@@ -9,7 +9,7 @@ class MetadataDao extends DatabaseAccessor<ChatDatabase>
with _$MetadataDaoMixin {
MetadataDao(super.db);
SingleOrNullSelectable<ChatMetadata> chatMetadata(String chatId) {
SingleOrNullSelectable<ChatMetadata> getChatMetadata(String chatId) {
final statement =
db.chatData.selectOnly()
..addColumns([db.chatData.metadata])
@@ -1,9 +1,10 @@
import 'package:fast_equatable/fast_equatable.dart';
import 'package:json_annotation/json_annotation.dart';
part 'chat_metadata.g.dart';
@JsonSerializable()
class ChatMetadata {
class ChatMetadata with FastEquatable {
final String? mainDocumentId;
final String? contextId;
@@ -13,4 +14,10 @@ class ChatMetadata {
_$ChatMetadataFromJson(json);
Map<String, dynamic> toJson() => _$ChatMetadataToJson(this);
@override
bool get cacheHash => true;
@override
List<Object?> get hashParameters => [mainDocumentId, contextId];
}
@@ -19,7 +19,7 @@ class DriftChatController implements ChatController {
DriftChatController(this._dao, {required this.chatId}) {
final chatMessagesStream =
_dao
.chatMessages(chatId: chatId)
.getChatMessages(chatId: chatId)
.map(
(data) => Message.fromJson(
jsonDecode(data.messageJson) as Map<String, dynamic>,
@@ -78,7 +78,7 @@ class DriftChatController implements ChatController {
Future<void> remove(Message message) async {
final index =
await _dao
.messageIndex(chatId: chatId, messageId: message.id)
.getMessageIndex(chatId: chatId, messageId: message.id)
.getSingleOrNull();
if (index != null) {
@@ -1,6 +1,6 @@
import 'package:lensai/features/chat/features/chat_store/data/models/chat_metadata.dart';
import 'package:lensai/features/chat/features/chat_store/data/providers.dart';
import 'package:lensai/features/chat/features/chat_store/domain/drift_chat_controller.dart';
import 'package:lensai/features/chat/features/chat_store/domain/controllers/drift_chat_controller.dart';
import 'package:riverpod/riverpod.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
@@ -21,5 +21,5 @@ DriftChatController chatController(Ref ref, String chatId) {
@Riverpod()
Stream<ChatMetadata?> chatMetadata(Ref ref, String chatId) {
final db = ref.watch(chatDatabaseProvider);
return db.metadataDao.chatMetadata(chatId).watchSingleOrNull();
return db.metadataDao.getChatMetadata(chatId).watchSingleOrNull();
}
@@ -158,7 +158,7 @@ class _ChatControllerProviderElement
String get chatId => (origin as ChatControllerProvider).chatId;
}
String _$chatMetadataHash() => r'22252e4a4c4e9cb039c5eee0e0f6eb5b8bd03944';
String _$chatMetadataHash() => r'e50f492ae69168c9f9c4df89e29424b72b681e27';
/// See also [chatMetadata].
@ProviderFor(chatMetadata)
@@ -3,7 +3,7 @@ import 'package:flutter_chat_core/flutter_chat_core.dart';
import 'package:langchain/langchain.dart';
import 'package:lensai/core/uuid.dart';
import 'package:lensai/features/chat/features/chat_store/data/models/message_types.dart';
import 'package:lensai/features/chat/features/chat_store/domain/drift_chat_controller.dart';
import 'package:lensai/features/chat/features/chat_store/domain/controllers/drift_chat_controller.dart';
import 'package:lensai/features/chat/features/chat_store/domain/providers.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';