refactoring
This commit is contained in:
@@ -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];
|
||||
}
|
||||
|
||||
+2
-2
@@ -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';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user