From 1891a4ab8888ac2f56c27dd56296573e5ff7df39 Mon Sep 17 00:00:00 2001 From: Lars Date: Thu, 23 Apr 2026 10:45:14 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Phase=20B=20-=20Frontend=20API=20f?= =?UTF-8?q?=C3=BCr=20M:N=20Zielgruppen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Frontend API Layer: - 5 neue api.js Funktionen für M:N Management - listTrainingStyleTargetGroups(filters) - Liste mit Filtern - createTrainingStyleTargetGroup(data) - Neue Zuordnung - updateTrainingStyleTargetGroup(id, data) - is_primary ändern - deleteTrainingStyleTargetGroup(id) - Zuordnung löschen - getTrainingStylesHierarchy() - Hierarchische Struktur für Tree-View Pattern: Konsistent mit bestehenden Catalog-Funktionen Export: Alle Funktionen zum api-Objekt hinzugefügt Version: 0.3.4 (Phase B) --- frontend/src/utils/api.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/frontend/src/utils/api.js b/frontend/src/utils/api.js index f0218dc..16c9e07 100644 --- a/frontend/src/utils/api.js +++ b/frontend/src/utils/api.js @@ -370,6 +370,35 @@ export async function deleteTargetGroup(id) { return request(`/api/target-groups/${id}`, { method: 'DELETE' }) } +// Training Style → Target Groups (M:N Assignments) +export async function listTrainingStyleTargetGroups(filters = {}) { + const query = new URLSearchParams(filters).toString() + return request(`/api/training-style-target-groups${query ? '?' + query : ''}`) +} + +export async function createTrainingStyleTargetGroup(data) { + return request('/api/training-style-target-groups', { + method: 'POST', + body: JSON.stringify(data) + }) +} + +export async function updateTrainingStyleTargetGroup(id, data) { + return request(`/api/training-style-target-groups/${id}`, { + method: 'PUT', + body: JSON.stringify(data) + }) +} + +export async function deleteTrainingStyleTargetGroup(id) { + return request(`/api/training-style-target-groups/${id}`, { method: 'DELETE' }) +} + +export async function getTrainingStylesHierarchy(filters = {}) { + const query = new URLSearchParams(filters).toString() + return request(`/api/training-styles/hierarchy${query ? '?' + query : ''}`) +} + // ============================================================================ // Training Planning // ============================================================================ @@ -494,6 +523,11 @@ export const api = { createTargetGroup, updateTargetGroup, deleteTargetGroup, + listTrainingStyleTargetGroups, + createTrainingStyleTargetGroup, + updateTrainingStyleTargetGroup, + deleteTrainingStyleTargetGroup, + getTrainingStylesHierarchy, // System getVersion,