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
.playwright-mcp
.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>`
- **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`.
**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.
+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ří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ě.
+3
View File
@@ -34,6 +34,7 @@ export const MEAL_TYPES_IN_ORDER: MealType[] = [
export const ACTIVITY_UNIT_NAMES: Record<ActivityUnit, string> = {
KROKY: 'kroky',
MINUTY: 'minuty',
SEKUNDY: 'sekundy',
KM: 'km',
OPAKOVANI: 'opakování',
};
@@ -42,6 +43,7 @@ export const ACTIVITY_UNIT_NAMES: Record<ActivityUnit, string> = {
export const ACTIVITY_UNIT_SHORT: Record<ActivityUnit, string> = {
KROKY: 'kroků',
MINUTY: 'min',
SEKUNDY: 's',
KM: 'km',
OPAKOVANI: 'opak.',
};
@@ -50,6 +52,7 @@ export const ACTIVITY_UNIT_SHORT: Record<ActivityUnit, string> = {
export const ACTIVITY_UNITS_IN_ORDER: ActivityUnit[] = [
ActivityUnit.KROKY,
ActivityUnit.MINUTY,
ActivityUnit.SEKUNDY,
ActivityUnit.KM,
ActivityUnit.OPAKOVANI,
];
+1
View File
@@ -12,6 +12,7 @@ const MAX_TEXT_LENGTH = 500;
const UNITS: ActivityUnit[] = [
ActivityUnit.KROKY,
ActivityUnit.MINUTY,
ActivityUnit.SEKUNDY,
ActivityUnit.KM,
ActivityUnit.OPAKOVANI,
];
+4 -2
View File
@@ -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: |