Skip to content

feat: add shift domain, coverage engine and SQLite migrations - #9

Merged
rwrife merged 1 commit into
mainfrom
feat/issue-2-domain-sqlite
Oct 28, 2026
Merged

rwrife merged 1 commit into
mainfrom
feat/issue-2-domain-sqlite

Conversation

@rwrife

@rwrife rwrife commented Oct 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add pure Dart event, volunteer, shift and assignment domain with coverage and UTC-based overlap checks.
  • Add SQLite schema v2, transactional migration and atomic whole-plan save/load. Preserve attendance and private notes locally.
  • Validate DST offsets and millisecond boundaries, with tests for migration, reload, rollback, conflicts, duplicate assignment, zero/under/overfill, midnight and DST fall-back.

Verification

  • Flutter 3.47.7 / Dart 3.13.5: flutter pub get --enforce-lockfile
  • dart format --output=none --set-exit-if-changed lib test
  • flutter analyze — No issues found
  • flutter test — 10 passed on Linux host
  • Independent staged-diff review — no material correctness issues after precision fix
  • Windows and Android builds: CI pending

Scope: shell remains unconnected to domain/store; issue #3 will wire authoring to persistence. iOS compile not available on Linux.

Closes #2

@rwrife
rwrife merged commit 2b57bda into main Oct 28, 2026
2 checks passed
@rwrife
rwrife deleted the feat/issue-2-domain-sqlite branch October 28, 2026 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Shift model, overlap/coverage engine and local database

1 participant