feat: split jídel
feat: graf příjmů
This commit is contained in:
1 parent
bc85a37fc0
commit
b880b36edd
32 files changed
+2048
-262
No files matched your search
@@ -20,6 +20,8 @@ paths:
|
||||
$ref: "./paths/meals/add.yml"
|
||||
/meals/update:
|
||||
$ref: "./paths/meals/update.yml"
|
||||
/meals/split:
|
||||
$ref: "./paths/meals/split.yml"
|
||||
/meals/delete:
|
||||
$ref: "./paths/meals/delete.yml"
|
||||
/meals/multiplier:
|
||||
@@ -38,6 +40,8 @@ paths:
|
||||
# Statistiky (/api/stats)
|
||||
/stats/summary:
|
||||
$ref: "./paths/stats/summary.yml"
|
||||
/stats/intake:
|
||||
$ref: "./paths/stats/intake.yml"
|
||||
/stats/activity:
|
||||
$ref: "./paths/stats/activity.yml"
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
post:
|
||||
operationId: splitMeal
|
||||
summary: Rozdělí jedno jídlo na dvě — původní se upraví a vedle něj vznikne nové ve stejném dni.
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "../../schemas/_index.yml#/MealSplitRequest"
|
||||
responses:
|
||||
"200":
|
||||
description: Aktualizovaný přehled dne
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "../../schemas/_index.yml#/DayRecord"
|
||||
"400":
|
||||
description: Neplatná data
|
||||
"401":
|
||||
description: Neautentizovaný uživatel
|
||||
"404":
|
||||
description: Záznam neexistuje
|
||||
@@ -0,0 +1,29 @@
|
||||
get:
|
||||
operationId: getIntakeStats
|
||||
summary: Vrátí statistiky energetického příjmu (jídla) za zvolené období včetně porovnání s výdejem.
|
||||
parameters:
|
||||
- in: query
|
||||
name: from
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
format: date
|
||||
description: První den období (včetně), YYYY-MM-DD
|
||||
- in: query
|
||||
name: to
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
format: date
|
||||
description: Poslední den období (včetně), YYYY-MM-DD
|
||||
responses:
|
||||
"200":
|
||||
description: Statistiky příjmu za období
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "../../schemas/_index.yml#/IntakeStats"
|
||||
"400":
|
||||
description: Neplatný rozsah
|
||||
"401":
|
||||
description: Neautentizovaný uživatel
|
||||
@@ -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"
|
||||
Reference in new issue
Block a user