import 'package:drift/drift.dart'; import 'package:trainhub_flutter/data/database/app_database.dart'; part 'knowledge_chunk_dao.g.dart'; @DriftAccessor(tables: [KnowledgeChunks]) class KnowledgeChunkDao extends DatabaseAccessor with _$KnowledgeChunkDaoMixin { KnowledgeChunkDao(super.db); Future insertChunk(KnowledgeChunksCompanion entry) => into(knowledgeChunks).insert(entry); /// Returns every stored chunk, including its JSON-encoded embedding. /// Loaded into memory for in-process cosine similarity scoring. Future> getAllChunks() => (select(knowledgeChunks) ..orderBy([ (t) => OrderingTerm(expression: t.createdAt, mode: OrderingMode.asc) ])) .get(); Future getCount() async { final rows = await select(knowledgeChunks).get(); return rows.length; } Future deleteAll() => delete(knowledgeChunks).go(); Future deleteBySourceId(String sourceId) => (delete(knowledgeChunks) ..where((t) => t.sourceId.equals(sourceId))) .go(); }