feat: split jídel

feat: graf příjmů
This commit is contained in:
Ondřej Anděl committed 2026-10-09 15:15:04 +02:00
1 parent bc85a37fc0
commit b880b36edd
32 files changed
+2048 -262

No files matched your search

+197
View File
@@ -228,6 +228,7 @@ MealGroup:
- missingCaloriesCount
- missingWeightCount
- missingNutrientsCount
- days
- values
properties:
name:
@@ -252,6 +253,11 @@ MealGroup:
missingNutrientsCount:
description: Počet jídel bez nutričních hodnot
type: integer
days:
description: Dny, kdy se jídlo jedlo, od nejnovějšího
type: array
items:
$ref: "#/MealGroupDay"
values:
description: |
Hodnoty k předvyplnění — z nejnovějšího jídla skupiny, které je má.
@@ -1508,3 +1514,194 @@ ActivitySummaryItem:
calories:
description: Spálené kcal včetně násobku
type: integer
IntakeGroupTotal:
description: Součet příjmu jedné skupiny jídel (chod, nebo zdroj)
type: object
additionalProperties: false
required:
- key
- calories
- count
properties:
key:
description: Klíč skupiny — hodnota MealType, nebo název zdroje
type: string
calories:
description: Přijaté kcal včetně násobku
type: integer
count:
description: Počet záznamů o jídle
type: integer
IntakePeriodTotal:
description: Příjem za jedno období (den, měsíc nebo rok) s výdejem stejných dní
type: object
additionalProperties: false
required:
- period
- calories
- burnCalories
- dayCount
- caloriesDayCount
- byMealType
properties:
period:
description: Označení období — YYYY-MM-DD (den), YYYY-MM (měsíc) nebo YYYY (rok)
type: string
calories:
description: Přijaté kcal včetně násobku
type: integer
burnCalories:
description: |
Výdej (klidový + pohyb) za dny období, ve kterých má aspoň jedno jídlo
kalorie. Ostatní dny se nezapočítávají, jinak by vycházel deficit tam,
kde uživatel jen nic nezapsal nebo kalorie nezná.
type: integer
dayCount:
description: Počet dní období se zapsaným jídlem
type: integer
caloriesDayCount:
description: Počet dní období, kdy má aspoň jedno jídlo kalorie — základ průměru a bilance
type: integer
byMealType:
description: Příjem po chodech; chody bez kalorií chybí
type: array
items:
$ref: "#/IntakeGroupTotal"
IntakeStats:
description: |
Statistiky energetického příjmu za zvolené období — kolik se snědlo, v jakých
chodech a jídlech, jaké živiny a jak to vychází proti výdeji.
type: object
additionalProperties: false
required:
- from
- to
- totalCalories
- burnCalories
- hasBasal
- entryCount
- missingCaloriesCount
- dayCount
- caloriesDayCount
- nutrientsDayCount
- byDay
- byMonth
- byYear
- byMealType
- bySource
properties:
from:
description: Začátek období (YYYY-MM-DD, včetně)
type: string
format: date
to:
description: Konec období (YYYY-MM-DD, včetně)
type: string
format: date
totalCalories:
description: Přijaté kcal za období včetně násobku
type: integer
burnCalories:
description: Výdej (klidový + pohyb) za dny, kdy má aspoň jedno jídlo kalorie
type: integer
hasBasal:
description: |
Zda výdej obsahuje klidový metabolismus. Bez něj porovnává bilance jen
jídlo proti pohybu a nejde o skutečný deficit.
type: boolean
targetDailyBalance:
description: Cílová denní bilance podle tempa změny hmotnosti, pokud je cíl nastavený
type: integer
proteinTargetGrams:
description: Denní cíl bílkovin v gramech k hmotnosti na konci období, pokud je cíl nastavený
type: integer
entryCount:
description: Počet záznamů o jídle v období
type: integer
missingCaloriesCount:
description: Počet jídel bez kalorií — do součtů nevstupují
type: integer
dayCount:
description: Počet dní, ve kterých je alespoň jedno jídlo
type: integer
caloriesDayCount:
description: Počet dní, kdy má aspoň jedno jídlo kalorie — základ průměru a bilance
type: integer
totalNutrients:
description: Součet živin za období; jen jídla s gramáží a nutričními hodnotami
allOf:
- $ref: "#/Nutrients"
nutrientsDayCount:
description: Počet dní, ve kterých má aspoň jedno jídlo živiny — základ pro průměr na den
type: integer
byDay:
description: Součty po dnech se zapsaným jídlem, vzestupně
type: array
items:
$ref: "#/IntakePeriodTotal"
byMonth:
description: Součty po měsících, vzestupně
type: array
items:
$ref: "#/IntakePeriodTotal"
byYear:
description: Součty po letech, vzestupně
type: array
items:
$ref: "#/IntakePeriodTotal"
byMealType:
description: Příjem po chodech, sestupně dle kcal
type: array
items:
$ref: "#/IntakeGroupTotal"
bySource:
description: Příjem dle zdroje jídla, sestupně dle kcal; jídla bez zdroje pod "Neuvedeno"
type: array
items:
$ref: "#/IntakeGroupTotal"
MealGroupDay:
description: Den, ve kterém se jídlo skupiny jedlo
type: object
additionalProperties: false
required:
- date
- incomplete
properties:
date:
type: string
format: date
incomplete:
description: Zda některému jídlu skupiny v tento den chybí kalorie, gramáž nebo živiny
type: boolean
MealSplitRequest:
description: |
Rozdělení jídla, které import (nebo uživatel) zapsal jako jedno, na dvě.
Obě části zůstávají ve dni původního jídla; datum v částech se ignoruje.
type: object
additionalProperties: false
required:
- id
- date
- original
- split
properties:
id:
description: Identifikátor rozdělovaného jídla
type: string
date:
description: Den rozdělovaného jídla (YYYY-MM-DD)
type: string
format: date
original:
description: Nové hodnoty původního jídla — přepíší ho stejně jako úprava
allOf:
- $ref: "#/MealInput"
split:
description: Odštěpená část, vznikne z ní nové jídlo
allOf:
- $ref: "#/MealInput"