import 'package:drift/drift.dart'; import 'package:trainhub_flutter/data/database/app_database.dart'; part 'chat_dao.g.dart'; @DriftAccessor(tables: [ChatSessions, ChatMessages]) class ChatDao extends DatabaseAccessor with _$ChatDaoMixin { ChatDao(super.db); Future> getAllSessions() => (select(chatSessions) ..orderBy([ (t) => OrderingTerm( expression: t.createdAt, mode: OrderingMode.desc) ])) .get(); Future getSession(String id) => (select(chatSessions)..where((t) => t.id.equals(id))) .getSingleOrNull(); Future insertSession(ChatSessionsCompanion entry) => into(chatSessions).insert(entry); Future deleteSession(String id) => (delete(chatSessions)..where((t) => t.id.equals(id))).go(); Future updateSessionTitle(String id, String title) => (update(chatSessions)..where((t) => t.id.equals(id))) .write(ChatSessionsCompanion(title: Value(title))); Future> getMessages(String sessionId) => (select(chatMessages) ..where((t) => t.sessionId.equals(sessionId)) ..orderBy([ (t) => OrderingTerm(expression: t.createdAt, mode: OrderingMode.asc) ])) .get(); Future insertMessage(ChatMessagesCompanion entry) => into(chatMessages).insert(entry); }