prepare(" INSERT INTO daily_plans (user_id, plan_date, focus_goal, notes) VALUES (?, ?, ?, ?) ON DUPLICATE KEY UPDATE focus_goal = VALUES(focus_goal), notes = VALUES(notes) "); $stmt->execute([$user['id'], $date, $focusGoal, $notes]); echo json_encode(['success' => true]); exit; } // 2. Taak toevoegen if ($action === 'add_task') { $data = json_decode(file_get_contents('php://input'), true); $title = trim($data['title'] ?? ''); $priority = in_array($data['priority'] ?? '', ['P1', 'P2', 'P3']) ? $data['priority'] : 'P2'; $timeBlockStart = $data['time_block_start'] ?? null; $date = $data['date'] ?? $today; if (empty($title)) { echo json_encode(['error' => 'Titel is verplicht']); exit; } // Haal of maak daily plan op $stmtPlan = $db->prepare(" INSERT INTO daily_plans (user_id, plan_date) VALUES (?, ?) ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id) "); $stmtPlan->execute([$user['id'], $date]); $planId = $db->lastInsertId(); $source = !empty($data['source']) ? substr(trim($data['source']), 0, 50) : 'FOCIZ'; $externalId = !empty($data['external_id']) ? substr(trim($data['external_id']), 0, 100) : null; $externalUrl = !empty($data['external_url']) ? trim($data['external_url']) : null; $stmt = $db->prepare(" INSERT INTO tasks (user_id, daily_plan_id, title, priority, time_block_start, status, source, external_id, external_url) VALUES (?, ?, ?, ?, ?, 'TODO', ?, ?, ?) "); $stmt->execute([$user['id'], $planId, $title, $priority, $timeBlockStart, $source, $externalId, $externalUrl]); $taskId = (int)$db->lastInsertId(); echo json_encode([ 'success' => true, 'task' => [ 'id' => $taskId, 'title' => $title, 'priority' => $priority, 'time_block_start' => $timeBlockStart, 'is_completed' => 0, 'status' => 'TODO' ] ]); exit; } // 3. Taak status toggelen (voltooid / open) if ($action === 'toggle_task') { $data = json_decode(file_get_contents('php://input'), true); $taskId = (int)($data['task_id'] ?? 0); $isCompleted = !empty($data['is_completed']) ? 1 : 0; $status = $isCompleted ? 'DONE' : 'TODO'; $stmt = $db->prepare(" UPDATE tasks SET is_completed = ?, status = ? WHERE id = ? AND user_id = ? "); $stmt->execute([$isCompleted, $status, $taskId, $user['id']]); echo json_encode(['success' => true]); exit; } // 4. Taak verwijderen if ($action === 'delete_task') { $data = json_decode(file_get_contents('php://input'), true); $taskId = (int)($data['task_id'] ?? 0); $stmt = $db->prepare("DELETE FROM tasks WHERE id = ? AND user_id = ?"); $stmt->execute([$taskId, $user['id']]); echo json_encode(['success' => true]); exit; } echo json_encode(['error' => 'Onbekende actie']); } catch (Exception $e) { http_response_code(500); echo json_encode(['error' => $e->getMessage()]); }