feat: přidána podpora sekund

This commit is contained in:
Ondřej Anděl committed 2026-09-30 18:20:59 +02:00
1 parent 21b01528e9
commit c3990d80f8
6 files changed
+11 -4

No files matched your search

+1
View File
@@ -9,3 +9,4 @@ server/data/
.claude/worktrees .claude/worktrees
.playwright-mcp .playwright-mcp
.idea/ .idea/
server/.env.production
+1 -1
View File
@@ -143,7 +143,7 @@ Den má dvě strany a `DayPage` je dělí do záložek:
- **Příjem** — jídla (`MealEntry`), klíč `meals:<login>:<datum>` - **Příjem** — jídla (`MealEntry`), klíč `meals:<login>:<datum>`
- **Výdej** — pohyb (`ActivityEntry`), klíč `activities:<login>:<datum>` - **Výdej** — pohyb (`ActivityEntry`), klíč `activities:<login>:<datum>`
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`. 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) **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. a aplikace všude pracuje s celými čísly. Stejná konvence jako u energie jídla na 100 g.
+1 -1
View File
@@ -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řehled dne má dvě záložky:
- **Příjem** — co jste snědli, s cenou, gramáží a kaloriemi. - **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). 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 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ě. se 120 v kuse, i když kalorie vyjdou stejně.
+3
View File
@@ -34,6 +34,7 @@ export const MEAL_TYPES_IN_ORDER: MealType[] = [
export const ACTIVITY_UNIT_NAMES: Record<ActivityUnit, string> = { export const ACTIVITY_UNIT_NAMES: Record<ActivityUnit, string> = {
KROKY: 'kroky', KROKY: 'kroky',
MINUTY: 'minuty', MINUTY: 'minuty',
SEKUNDY: 'sekundy',
KM: 'km', KM: 'km',
OPAKOVANI: 'opakování', OPAKOVANI: 'opakování',
}; };
@@ -42,6 +43,7 @@ export const ACTIVITY_UNIT_NAMES: Record<ActivityUnit, string> = {
export const ACTIVITY_UNIT_SHORT: Record<ActivityUnit, string> = { export const ACTIVITY_UNIT_SHORT: Record<ActivityUnit, string> = {
KROKY: 'kroků', KROKY: 'kroků',
MINUTY: 'min', MINUTY: 'min',
SEKUNDY: 's',
KM: 'km', KM: 'km',
OPAKOVANI: 'opak.', OPAKOVANI: 'opak.',
}; };
@@ -50,6 +52,7 @@ export const ACTIVITY_UNIT_SHORT: Record<ActivityUnit, string> = {
export const ACTIVITY_UNITS_IN_ORDER: ActivityUnit[] = [ export const ACTIVITY_UNITS_IN_ORDER: ActivityUnit[] = [
ActivityUnit.KROKY, ActivityUnit.KROKY,
ActivityUnit.MINUTY, ActivityUnit.MINUTY,
ActivityUnit.SEKUNDY,
ActivityUnit.KM, ActivityUnit.KM,
ActivityUnit.OPAKOVANI, ActivityUnit.OPAKOVANI,
]; ];
+1
View File
@@ -12,6 +12,7 @@ const MAX_TEXT_LENGTH = 500;
const UNITS: ActivityUnit[] = [ const UNITS: ActivityUnit[] = [
ActivityUnit.KROKY, ActivityUnit.KROKY,
ActivityUnit.MINUTY, ActivityUnit.MINUTY,
ActivityUnit.SEKUNDY,
ActivityUnit.KM, ActivityUnit.KM,
ActivityUnit.OPAKOVANI, ActivityUnit.OPAKOVANI,
]; ];
+4 -2
View File
@@ -467,6 +467,7 @@ ActivityUnit:
enum: enum:
- KROKY - KROKY
- MINUTY - MINUTY
- SEKUNDY
- KM - KM
- OPAKOVANI - OPAKOVANI
@@ -496,8 +497,9 @@ ActivityEntry:
$ref: "#/ActivityUnit" $ref: "#/ActivityUnit"
quantity: quantity:
description: | description: |
Množství v dané jednotce na jednu sérii — počet kroků, minut, kilometrů Množství v dané jednotce na jednu sérii — počet kroků, minut, sekund,
nebo opakování. kilometrů nebo opakování. Sekundy jsou pro výdrže (plank, izometrie), kde
by celé minuty byly příliš hrubé.
type: integer type: integer
sets: sets:
description: | description: |