feat: SQLite data store with Lesson/LessonMedia models and LessonStore #12

Closed
agent-engineering wants to merge 1 commit from agent-engineering/jellyfin-lessons:issue-4-data-store into main

1 commit

Author SHA1 Message Date
Scott Scoble
deecc1dd7c feat: add SQLite data store with Lesson and LessonMedia models
- Add Microsoft.Data.Sqlite NuGet package to csproj
- Create Lesson model (Id, Title, Grade, Subject, LessonDate, Description, SourcePath, CompiledHtml, CreatedAt, UpdatedAt)
- Create LessonMedia model (LessonId, JellyfinItemId, SortOrder)
- Create LessonStore with SQLite-backed CRUD operations:
  - Constructor expands ~ in dbPath to home directory
  - Creates lessons and lesson_media tables on init
  - GetAllLessons(), GetLessonById(), GetLessonsByGrade()
  - UpsertLesson() with media association handling
  - DeleteLesson() with FK cascade
- Enables foreign key enforcement via PRAGMA
- Build passes with 0 warnings, 0 errors

Closes #4
2026-05-15 21:37:56 -07:00