mirror of
https://github.com/kuhyx/screen-locker.git
synced 2026-11-11 22:53:53 +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_test.dart | ||
| exercise_test.dart | ||
| manual_workout_test.dart | ||
| set_result_test.dart | ||
| workout_plan_test.dart | ||
| workout_session_test.dart | ||