diff --git a/.gitignore b/.gitignore index 9585019..912007c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ server/data/ .claude/worktrees .playwright-mcp .idea/ +server/.env.production diff --git a/CLAUDE.md b/CLAUDE.md index ede4723..cda1f74 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -143,7 +143,7 @@ Den má dvě strany a `DayPage` je dělí do záložek: - **Příjem** — jídla (`MealEntry`), klíč `meals::` - **Výdej** — pohyb (`ActivityEntry`), klíč `activities::` -Aktivita se měří v jednotce (`ActivityUnit`: KROKY, MINUTY, KM, OPAKOVANI) a +Aktivita se měří v jednotce (`ActivityUnit`: KROKY, MINUTY, SEKUNDY, KM, OPAKOVANI) a kalorie se dopočtou jako `getTotalQuantity(quantity, sets) / 100 * caloriesPer100Units`. **Sto jednotek, ne jedna** — u kroků by sazba na jeden krok byla zlomek (~0,04 kcal) a aplikace všude pracuje s celými čísly. Stejná konvence jako u energie jídla na 100 g. diff --git a/README.md b/README.md index a3c2e65..94c0727 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ Produkčně běží aplikace nad Redisem, ve vývoji nad JSON souborem Přehled dne má dvě záložky: - **Příjem** — co jste snědli, s cenou, gramáží a kaloriemi. -- **Výdej** — pohyb. Kroky, minuty, kilometry nebo opakování; z množství a +- **Výdej** — pohyb. Kroky, minuty, sekundy, kilometry nebo opakování; z množství a spotřeby na 100 jednotek se dopočtou spálené kalorie (10 000 kroků ≈ 400 kcal). U silových cviků jde zadat i **počet sérií** — 3 × 40 kliků se tak neplete se 120 v kuse, i když kalorie vyjdou stejně. diff --git a/client/src/enums.ts b/client/src/enums.ts index 2303541..273dcc9 100644 --- a/client/src/enums.ts +++ b/client/src/enums.ts @@ -34,6 +34,7 @@ export const MEAL_TYPES_IN_ORDER: MealType[] = [ export const ACTIVITY_UNIT_NAMES: Record = { KROKY: 'kroky', MINUTY: 'minuty', + SEKUNDY: 'sekundy', KM: 'km', OPAKOVANI: 'opakování', }; @@ -42,6 +43,7 @@ export const ACTIVITY_UNIT_NAMES: Record = { export const ACTIVITY_UNIT_SHORT: Record = { KROKY: 'kroků', MINUTY: 'min', + SEKUNDY: 's', KM: 'km', OPAKOVANI: 'opak.', }; @@ -50,6 +52,7 @@ export const ACTIVITY_UNIT_SHORT: Record = { export const ACTIVITY_UNITS_IN_ORDER: ActivityUnit[] = [ ActivityUnit.KROKY, ActivityUnit.MINUTY, + ActivityUnit.SEKUNDY, ActivityUnit.KM, ActivityUnit.OPAKOVANI, ]; diff --git a/server/src/activities.ts b/server/src/activities.ts index 48189c1..cd8ef1b 100644 --- a/server/src/activities.ts +++ b/server/src/activities.ts @@ -12,6 +12,7 @@ const MAX_TEXT_LENGTH = 500; const UNITS: ActivityUnit[] = [ ActivityUnit.KROKY, ActivityUnit.MINUTY, + ActivityUnit.SEKUNDY, ActivityUnit.KM, ActivityUnit.OPAKOVANI, ]; diff --git a/types/schemas/_index.yml b/types/schemas/_index.yml index e2f69e5..ae18713 100644 --- a/types/schemas/_index.yml +++ b/types/schemas/_index.yml @@ -467,6 +467,7 @@ ActivityUnit: enum: - KROKY - MINUTY + - SEKUNDY - KM - OPAKOVANI @@ -496,8 +497,9 @@ ActivityEntry: $ref: "#/ActivityUnit" quantity: description: | - Množství v dané jednotce na jednu sérii — počet kroků, minut, kilometrů - nebo opakování. + Množství v dané jednotce na jednu sérii — počet kroků, minut, sekund, + kilometrů nebo opakování. Sekundy jsou pro výdrže (plank, izometrie), kde + by celé minuty byly příliš hrubé. type: integer sets: description: |