chore: graf db

feat: workout plans (volný, fixní, plovoucí)
This commit is contained in:
Ondřej Anděl committed 2026-10-22 12:11:05 +02:00
1 parent 865c2c3b22
commit 7641e26c9f
43 files changed
+3459 -599

No files matched your search

+15 -1
View File
@@ -1,6 +1,9 @@
post:
operationId: applyWorkoutTemplate
summary: Založí do zvoleného dne všechny položky šablony tréninku.
summary: |
Založí do zvoleného dne cviky šablony tréninku. U plánu se zakládá jeden
jeho den a jde tak i potvrdit navržený trénink — cviky mimo doneIndexes
se zaznamenají jako vynechané a v okně replaceWithinDays je jde nahradit.
requestBody:
required: true
content:
@@ -16,6 +19,17 @@ post:
description: Den, do kterého se položky založí
type: string
format: date
dayId:
description: Den plánu. Povinný u šablony typu FIXNI a PLOVOUCI.
type: string
doneIndexes:
description: |
Pořadí odcvičených cviků v rozbaleném seznamu (jak ho vrací
PlannedWorkout.items). Bez něj se založí všechny; u dne plánu
může být prázdné — celý den se pak zaznamená jako vynechaný.
type: array
items:
type: integer
responses:
"200":
description: Aktualizovaný přehled dne
+40
View File
@@ -0,0 +1,40 @@
post:
operationId: replaceSkippedExercise
summary: |
Nahradí cvik vynechaný v předchozím dni plánu — založí ho jako aktivitu
do zvoleného dne a v záznamu původního dne ho označí jako nahrazený.
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [date, sourceDate, planId, itemIndex]
properties:
date:
description: Den, do kterého se náhrada založí
type: string
format: date
sourceDate:
description: Den, ve kterém se cvik vynechal
type: string
format: date
planId:
description: Identifikátor záznamu o použití plánu (PendingReplacement.planId)
type: string
itemIndex:
description: Pořadí cviku v záznamu (PendingReplacement.itemIndex)
type: integer
responses:
"200":
description: Aktualizovaný přehled dne
content:
application/json:
schema:
$ref: "../../schemas/_index.yml#/DayOverview"
"400":
description: Cvik nejde nahradit (není vynechaný, už je nahrazený, nebo uplynula lhůta)
"401":
description: Neautentizovaný uživatel
"404":
description: Záznam o použití plánu neexistuje
+2 -13
View File
@@ -1,23 +1,12 @@
post:
operationId: saveWorkoutTemplate
summary: Založí novou šablonu tréninku, nebo upraví existující.
summary: Založí novou šablonu tréninku (volnou nebo plán), nebo upraví existující.
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [name, items]
properties:
id:
description: Identifikátor upravované šablony. Bez něj se založí nová.
type: string
name:
type: string
items:
type: array
items:
$ref: "../../schemas/_index.yml#/WorkoutTemplateItem"
$ref: "../../schemas/_index.yml#/WorkoutTemplateInput"
responses:
"200":
description: Aktualizovaný seznam šablon