feat: hromadné editace

This commit is contained in:
Ondřej Anděl committed 2026-10-08 15:03:23 +02:00
1 parent 8fa7f601f2
commit bc85a37fc0
18 files changed
+825 -18

No files matched your search

+4
View File
@@ -30,6 +30,10 @@ paths:
$ref: "./paths/meals/sources.yml"
/meals/fillSameName:
$ref: "./paths/meals/fillSameName.yml"
/meals/groups:
$ref: "./paths/meals/groups.yml"
/meals/fillGroup:
$ref: "./paths/meals/fillGroup.yml"
# Statistiky (/api/stats)
/stats/summary:
+35
View File
@@ -0,0 +1,35 @@
post:
operationId: fillMealGroup
summary: Doplní chybějící údaje do všech jídel se stejným názvem a zdrojem.
description: |
Doplňují se jen prázdné hodnoty, co už jídla mají, zůstane. Gramáž se
nedoplní tam, kde jde dopočítat z ceny a sazby za 100 g, a energie jen
jídlům, která kalorie nemají. Kalorie se pak dopočtou z gramáže jako
při běžném uložení.
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [name, values]
properties:
name:
description: Název jídla skupiny
type: string
source:
description: Zdroj skupiny; bez něj jde o jídla bez zdroje
type: string
values:
$ref: "../../schemas/_index.yml#/MealGroupValues"
responses:
"200":
description: Jídla, do kterých se něco doplnilo
content:
application/json:
schema:
$ref: "../../schemas/_index.yml#/FillSameNameResult"
"400":
description: Neplatná data
"401":
description: Neautentizovaný uživatel
+18
View File
@@ -0,0 +1,18 @@
get:
operationId: getMealGroups
summary: Vrátí jídla přihlášeného uživatele seskupená podle názvu a zdroje.
description: |
Slouží k hromadnému doplnění chybějících údajů ke starším jídlům. Názvy
i zdroje se porovnávají bez diakritiky a velikosti písmen. Seřazeno od
nejčastěji jedených, při shodě od naposledy jedených.
responses:
"200":
description: Skupiny jídel
content:
application/json:
schema:
type: array
items:
$ref: "../../schemas/_index.yml#/MealGroup"
"401":
description: Neautentizovaný uživatel
+66
View File
@@ -193,6 +193,72 @@ FillSameNameResult:
type: string
format: date
MealGroupValues:
description: |
Hodnoty popisující jídlo samo — to, co mají všechna jídla jedné skupiny
(stejný název a zdroj) společné. Chod, datum, cena ani násobek mezi ně
nepatří, liší se den ode dne.
type: object
additionalProperties: false
properties:
pricePer100g:
description: Cena za 100 g v haléřích
type: integer
weight:
description: Gramáž porce zadaná ručně
type: integer
caloriesPer100g:
type: integer
calories:
description: Kalorie porce, jen pokud nejdou dopočítat z gramáže a energie na 100 g
type: integer
nutrientsPer100g:
$ref: "#/Nutrients"
MealGroup:
description: |
Všechna jídla uživatele se stejným názvem a zdrojem. Slouží k hromadnému
doplnění údajů, které u starších záznamů chybí.
type: object
additionalProperties: false
required:
- name
- count
- lastDate
- missingCaloriesCount
- missingWeightCount
- missingNutrientsCount
- values
properties:
name:
description: Název jídla tak, jak byl zapsán naposledy
type: string
source:
description: Zdroj tak, jak byl zapsán naposledy
type: string
count:
description: Počet jídel ve skupině
type: integer
lastDate:
description: Den, kdy uživatel jídlo jedl naposledy
type: string
format: date
missingCaloriesCount:
description: Počet jídel, u kterých nejsou kalorie porce (do součtu dne nevstupují)
type: integer
missingWeightCount:
description: Počet jídel bez gramáže
type: integer
missingNutrientsCount:
description: Počet jídel bez nutričních hodnot
type: integer
values:
description: |
Hodnoty k předvyplnění — z nejnovějšího jídla skupiny, které je má.
Energie a živiny se, když je skupina nemá, vezmou z jídla stejného
názvu z jiného zdroje (složení je stejné, sazba za 100 g ne).
$ref: "#/MealGroupValues"
MealSuggestion:
description: |
Jídlo z historie uživatele nabízené při zakládání nového. Každý název je