import { getAllRows } from '../crud' import type { ConversationEntry, MeetingInstance, ConversationLineTag } from '../../../src/db/types' /** * Flacht `lineTags`/`generalNoteTags` über ALLE Assignments hinweg zu einem globalen * (Zeilentext → Kriterium)-Korpus ab — Grundlage für die lokale Ähnlichkeitssuche im * selbstlernenden Kriterien-Tagging (Client, `src/utils/criterionSuggestion.ts`). Gleiches * Iterationsmuster wie `getCriterionUsageMap()` in `feedbackStructure.ts`, hier aber die * Rohdaten statt aggregierter Zählungen. Rückgabetyp ist bewusst `ConversationLineTag[]` (kein * neuer Typ) — jeder Korpus-Eintrag IST eine bereits vergebene Zeilen-Zuordnung, nur aus zwei * Quellen (Gesprächsbeiträge + allgemeine Notizen) zusammengeführt. */ export function getGlobalLineTagCorpus(): ConversationLineTag[] { const corpus: ConversationLineTag[] = [] for (const e of getAllRows('conversationEntries')) { for (const tag of e.lineTags ?? []) { corpus.push({ text: tag.text, criterionItemId: tag.criterionItemId }) } } for (const m of getAllRows('meetingInstances')) { for (const tag of m.generalNoteTags ?? []) { corpus.push({ text: tag.text, criterionItemId: tag.criterionItemId }) } } return corpus }