mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-07-04 16:23:04 +02:00
Add the complete annotations feature for marking and annotating script text: Core models (horatio_core): - TextMark, LineNote, AnnotationSnapshot, MarkType, NoteCategory - Script.id field + UUID generation in text_parser Database layer (horatio_app): - Drift tables: text_marks, line_notes, annotation_snapshots - AppDatabase with AnnotationDao (full CRUD + streams + bulk replace) State management: - AnnotationCubit: mark/note CRUD, line selection, editing context - AnnotationHistoryCubit: snapshot save/restore with stream updates UI components: - MarkOverlay: colored span rendering for text marks - NoteIndicator: per-line note count badge - MarkTypePicker: 6-type ActionChip selector - NoteEditorSheet: category dropdown + text field bottom sheet - AnnotationEditorScreen: full editor with long-press marks + note editing - AnnotationHistoryScreen: snapshot timeline with restore dialog Wiring: - main.dart: async DB init with path_provider - app.dart: RepositoryProvider<AnnotationDao> - router.dart: /annotations + /annotation-history routes - role_selection_screen: Annotate Script option - run.sh: app_codegen step + coverage filtering for generated code 352 tests (105 core + 247 app), 100% branch coverage, zero dead code.
24 lines
766 B
Dart
24 lines
766 B
Dart
import 'package:drift/drift.dart';
|
|
import 'package:horatio_app/database/daos/annotation_dao.dart';
|
|
import 'package:horatio_app/database/tables/annotation_snapshots_table.dart';
|
|
import 'package:horatio_app/database/tables/line_notes_table.dart';
|
|
import 'package:horatio_app/database/tables/text_marks_table.dart';
|
|
|
|
part 'app_database.g.dart';
|
|
|
|
/// Central drift database for Horatio.
|
|
///
|
|
/// Schema version 1: annotation tables (text_marks, line_notes,
|
|
/// annotation_snapshots).
|
|
@DriftDatabase(
|
|
tables: [TextMarksTable, LineNotesTable, AnnotationSnapshotsTable],
|
|
daos: [AnnotationDao],
|
|
)
|
|
class AppDatabase extends _$AppDatabase {
|
|
/// Creates an [AppDatabase] with the given [QueryExecutor].
|
|
AppDatabase(super.e);
|
|
|
|
@override
|
|
int get schemaVersion => 1;
|
|
}
|