fix: recepty přesnuty k jídlům

feat: přidána podpora fotek
This commit is contained in:
Ondřej Anděl committed 2026-10-12 10:20:12 +02:00
1 parent efed5e6e86
commit e13f7ce8e5
39 files changed
+1266 -511

No files matched your search

+6
View File
@@ -38,6 +38,12 @@ paths:
$ref: "./paths/meals/fillGroup.yml"
/meals/renameGroup:
$ref: "./paths/meals/renameGroup.yml"
/meals/photos:
$ref: "./paths/meals/photos.yml"
/meals/photos/add:
$ref: "./paths/meals/photoAdd.yml"
/meals/photos/delete:
$ref: "./paths/meals/photoDelete.yml"
# Statistiky (/api/stats)
/stats/summary:
+34
View File
@@ -0,0 +1,34 @@
post:
operationId: addMealPhoto
summary: Přidá fotku k jídlu (názvu a zdroji, ne ke dni).
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [name, image, thumbnail]
properties:
name:
description: Název jídla
type: string
source:
description: Zdroj jídla; bez něj jde o jídlo bez zdroje
type: string
image:
description: Zmenšená fotka jako data URL
type: string
thumbnail:
description: Náhled do seznamu jídel jako data URL
type: string
responses:
"200":
description: Uložená fotka
content:
application/json:
schema:
$ref: "../../schemas/_index.yml#/MealPhoto"
"400":
description: Neplatná data nebo příliš mnoho fotek
"401":
description: Neautentizovaný uživatel
+23
View File
@@ -0,0 +1,23 @@
post:
operationId: deleteMealPhoto
summary: Smaže fotku jídla.
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [id]
properties:
id:
description: Identifikátor fotky
type: string
responses:
"204":
description: Fotka smazána
"400":
description: Neplatná data
"401":
description: Neautentizovaný uživatel
"404":
description: Fotka neexistuje
+29
View File
@@ -0,0 +1,29 @@
get:
operationId: getMealPhotos
summary: Vrátí fotky jídla i s plnými obrázky, od nejstarší.
parameters:
- in: query
name: name
required: true
schema:
type: string
description: Název jídla
- in: query
name: source
required: false
schema:
type: string
description: Zdroj jídla; bez něj jde o jídlo bez zdroje
responses:
"200":
description: Fotky jídla
content:
application/json:
schema:
type: array
items:
$ref: "../../schemas/_index.yml#/MealPhoto"
"400":
description: Neplatná data
"401":
description: Neautentizovaný uživatel
+40 -12
View File
@@ -218,18 +218,19 @@ MealGroupValues:
MealGroup:
description: |
Všechna jídla uživatele se stejným názvem a zdrojem. Položka seznamu jídel,
ze kterého se doplňují chybějící údaje a hromadně přejmenovává.
ze kterého se doplňují chybějící údaje a hromadně přejmenovává. Nese i recept
a fotky jídla; recept jídla, které se zatím nejedlo, tvoří položku sám.
type: object
additionalProperties: false
required:
- name
- count
- lastDate
- missingCaloriesCount
- missingWeightCount
- missingNutrientsCount
- days
- values
- photoCount
properties:
name:
description: Název jídla tak, jak byl zapsán naposledy
@@ -238,10 +239,10 @@ MealGroup:
description: Zdroj tak, jak byl zapsán naposledy
type: string
count:
description: Počet jídel ve skupině
description: Počet jídel ve skupině; nula u receptu, podle kterého se ještě nejedlo
type: integer
lastDate:
description: Den, kdy uživatel jídlo jedl naposledy
description: Den, kdy uživatel jídlo jedl naposledy; chybí, pokud se ještě nejedlo
type: string
format: date
missingCaloriesCount:
@@ -262,8 +263,42 @@ MealGroup:
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).
názvu z jiného zdroje (složení je stejné, sazba za 100 g ne). Gramáž
porce a energie mají přednost z receptu.
$ref: "#/MealGroupValues"
recipe:
description: Recept jídla, pokud ho má
$ref: "#/MealTemplate"
photoCount:
description: Počet fotek jídla
type: integer
thumbnail:
description: Náhled první fotky jako data URL
type: string
MealPhoto:
description: |
Fotka jídla. Patří jídlu jako celku (názvu a zdroji), ne jednomu dni.
Obrázky jsou data URL, klient je před nahráním zmenší.
type: object
additionalProperties: false
required:
- id
- image
- thumbnail
- createdAt
properties:
id:
type: string
image:
description: Fotka jako data URL (JPEG, PNG nebo WebP)
type: string
thumbnail:
description: Malý náhled do seznamu jídel jako data URL
type: string
createdAt:
type: string
format: date-time
MealSuggestion:
description: |
@@ -1135,10 +1170,6 @@ MealTemplate:
source:
description: Zdroj jídla, typicky "doma"
type: string
mealType:
description: Chod, pod kterým se jídlo zakládá. Bez něj se použije oběd.
allOf:
- $ref: "#/MealType"
calories:
description: Energetická hodnota jedné porce v kcal
type: integer
@@ -1186,9 +1217,6 @@ MealTemplateInput:
type: string
source:
type: string
mealType:
allOf:
- $ref: "#/MealType"
note:
type: string
ingredients: