false, 'ERROR' => 'missing_params', 'MESSAGE' => 'BusinessID is required']); } if ($templateID <= 0) { apiAbort(['OK' => false, 'ERROR' => 'missing_params', 'MESSAGE' => 'QuickTaskTemplateID is required']); } try { $template = queryOne(" SELECT Title, Details, TaskCategoryID AS CategoryID FROM QuickTaskTemplates WHERE ID = ? AND BusinessID = ? AND IsActive = 1 ", [$templateID, $businessID]); if (!$template) { apiAbort(['OK' => false, 'ERROR' => 'not_found', 'MESSAGE' => 'Template not found']); } queryTimed(" INSERT INTO Tasks (BusinessID, CategoryID, TaskTypeID, Title, Details, CreatedOn, ClaimedByUserID) VALUES (?, ?, 0, ?, ?, NOW(), 0) ", [ $businessID, $template['CategoryID'], $template['Title'], $template['Details'], ]); $taskID = (int) lastInsertId(); jsonResponse([ 'OK' => true, 'TASK_ID' => $taskID, 'MESSAGE' => 'Task created', ]); } catch (Exception $e) { jsonResponse(['OK' => false, 'ERROR' => 'server_error', 'MESSAGE' => $e->getMessage()]); }