mirror of
https://github.com/kuhyx/screen-locker.git
synced 2026-11-11 17:13:59 +01:00
Dart port of the Python manual-workout model so the phone can build the same signed-on-ingest sync payload the PC form produces. - lib/models/manual_workout.dart: ManualWorkoutDraft (mirrors the Python dataclass), validateManualWorkout (ports validate_manual_workout: required fields, HH:MM end-after-start, min duration, RPE range, per-sport rules, reflection length), buildEntry/buildSyncPayload (byte-for-byte equivalent of the Python build_entry + kind/date), manualSyncRecordId, buildManualRecord. The MANUAL_WORKOUT_* constants are inlined here (a const-only file has no coverable lines and trips the 100%-coverage file-presence guard), replacing models/manual_workout_constants.dart. - test/models/manual_workout_test.dart: the cross-language wire fixture (an identical literal to test_manual_workout.py::TestSyncWireFormat — this catches key-name/format drift between the two serializers) plus full validation coverage. 29 tests; manual_workout.dart is 100% covered. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PM3auNTifaVgcXWDizZrjH |
||
|---|---|---|
| .. | ||
| exercise_result.dart | ||
| exercise.dart | ||
| manual_workout.dart | ||
| set_result.dart | ||
| workout_plan.dart | ||
| workout_session.dart | ||