mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 20:42:43 +00:00
Define the go-forward aggregated heart-rate upload shape so clients can stop posting one Measurement per raw HealthKit sample. A heart-rate row keyed `stats:HKQuantityTypeIdentifierHeartRate:<bucket-start-hour>` carries the hour's average bpm as a single PULSE row and rides the existing `stats:` overwrite path: a re-post within the hour overwrites the value instead of duplicating, identical to the per-day cumulative rows. The hour boundary is UTC so the key is timezone-stable. The batch route rejects a row that targets the heart-rate bucket prefix with a malformed hour suffix as a per-entry skip (`malformed_hr_bucket_id`) rather than persisting an un-overwriteable row; well-formed buckets, per-sample uuid ingest, and the per-day cumulative overwrite path are all unchanged. Average-only for now — the measurement row carries a single value column, so hourly min/max would need a schema change and is left as a follow-up. Documents all three externalId shapes plus the `updated` status in the OpenAPI contract.
705 KiB
705 KiB