doc: lägg till API-ändring (spara längd + ålder/kön) i openScale-planen
Some checks failed
release / build-release (push) Failing after 3h0m33s
Some checks failed
release / build-release (push) Failing after 3h0m33s
Längd på servern -> korrektare BIA (impedansvågar) och BMR-baserad energiförbrukning. Egen milstolpe + backend/app/webb-detaljer. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kf4MAbZ3c3B4Xy5XfuGsCP
This commit is contained in:
@@ -35,10 +35,38 @@ kan hämtas direkt från en BT-våg in i appens kroppsmätningar.
|
||||
Vissa vågar skickar bara **rå impedans**; openScale räknar då själv ut
|
||||
fett/muskler/vatten med en formel som kräver **längd, ålder, kön** (ScaleUser).
|
||||
Vi måste därför:
|
||||
- Lägga till längd/födelseår/kön i profilen (lokalt; kan senare speglas i API).
|
||||
- Lägga till längd/födelseår/kön i profilen (se API-ändring nedan).
|
||||
- Porta openScales BIA-beräkning för de vågar som kräver den.
|
||||
Vågar som räknar ombord och skickar färdiga procent behöver inte detta.
|
||||
|
||||
## API-ändring: spara användarens längd (+ ålder/kön)
|
||||
|
||||
Längden ska sparas **på servern** (gym-API:t) så att den är gemensam för app
|
||||
och webb, överlever ominstallation, och kan användas för mer korrekta
|
||||
beräkningar:
|
||||
|
||||
- **BIA/kroppssammansättning:** openScales formler för impedansvågar kräver
|
||||
längd (+ ålder + kön) för att ge korrekta %fett/muskler/vatten.
|
||||
- **Energiförbrukning:** med längd (+ ålder + kön) kan kaloriberäkningen gå
|
||||
från ren MET × vikt × tid till en BMR-baserad uppskattning
|
||||
(Mifflin–St Jeor: `10·vikt + 6.25·längd − 5·ålder + könskonstant`), vilket
|
||||
ger rimligare siffror per pass.
|
||||
|
||||
**Backend (brasse-pc.eu-v2, gym-api):**
|
||||
- Utöka `User` med `HeightCm` (double?), och för full BIA även `BirthDate`
|
||||
(eller `BirthYear`) och `Sex` (enum/sträng). Nullable + bakåtkompatibla.
|
||||
- Migration (körs automatiskt vid uppstart, samma mönster som
|
||||
`BodyMeasurement`).
|
||||
- Exponera i `myProfile`-query och en `updateProfile`-mutation (eller utöka
|
||||
`updateBodyWeight` → `updateProfile` med längd/ålder/kön).
|
||||
- Deploya om gym-api-prod + -test (serialiserat bygge, se
|
||||
[[pi5-ci-concurrency]]).
|
||||
|
||||
**App:** profil-fält för längd (och ålder/kön) som läser/skriver mot API:t;
|
||||
cachas lokalt (som kroppsvikten) för offline och för BIA-beräkningen.
|
||||
|
||||
**Webb (brasse-pc.eu-v2):** samma fält på profil-fliken via `updateProfile`.
|
||||
|
||||
## Milstolpar (byggbara steg)
|
||||
|
||||
1. **Grund + licens + About** — LICENSE → GPL-3.0; `blessed-kotlin`-beroende;
|
||||
@@ -54,9 +82,13 @@ Vågar som räknar ombord och skickar färdiga procent behöver inte detta.
|
||||
4. **Väg dig-flöde** — knapp som skannar/kopplar vald våg, tar emot en
|
||||
`ScaleMeasurement`, förhandsvisar och sparar via `addBodyMeasurement`
|
||||
(offline-kön tar resten). Live-status ("står på vågen…").
|
||||
5. **Impedansvågar** — profilfält (längd/ålder/kön) + BIA-beräkning för de
|
||||
vågar som skickar rå impedans. Verifieras mot din våg.
|
||||
6. **Polering + docs** — felhantering, timeouts, ominställning av våg;
|
||||
5. **API: längd (+ ålder/kön)** — utöka gym-API:ts `User` med `HeightCm`
|
||||
(+ `BirthDate`/`Sex`), migration, `myProfile` + `updateProfile`, deploy.
|
||||
App + webb får profilfält. Se "API-ändring" ovan.
|
||||
6. **Impedansvågar + bättre kalorier** — BIA-beräkning för vågar som skickar
|
||||
rå impedans (använder längd/ålder/kön), och BMR-baserad energiförbrukning.
|
||||
Verifieras mot din våg.
|
||||
7. **Polering + docs** — felhantering, timeouts, ominställning av våg;
|
||||
uppdatera README/wiki + infra-Doc (GPL-relicens noterad).
|
||||
|
||||
## Öppna frågor / risker
|
||||
|
||||
Reference in New Issue
Block a user