false, 'error' => 'No active profile']); exit; } $stmt = $pdo->prepare("SELECT * FROM projects WHERE user_id = ? AND profile_id = ? ORDER BY sort_order ASC"); $stmt->execute([$user_id, $profile_id]); $projects = $stmt->fetchAll(); foreach ($projects as &$project) { $stmt = $pdo->prepare("SELECT * FROM tasks WHERE project_id = ? AND user_id = ? ORDER BY created_at"); $stmt->execute([$project['id'], $user_id]); $project['tasks'] = $stmt->fetchAll(); foreach ($project['tasks'] as &$task) { $stmt = $pdo->prepare("SELECT * FROM subtasks WHERE task_id = ? AND user_id = ? ORDER BY created_at"); $stmt->execute([$task['id'], $user_id]); $task['subtasks'] = $stmt->fetchAll(); } } echo json_encode($projects);