From d4db89f04edc6a30843cdee4a4ca540e2ae34147 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Thu, 25 Jun 2026 17:01:44 +0300 Subject: [PATCH] add documents+ai_data to getDriverDetails, create rejectDriver endpoint, add rejected_reason column --- backend/schema_primary.sql | 1 + .../getDriverDetailsForActivate.php | 22 ++++++++++++++++++ backend/serviceapp/rejectDriver.php | 23 +++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 backend/serviceapp/rejectDriver.php diff --git a/backend/schema_primary.sql b/backend/schema_primary.sql index 5484475..6f0870e 100644 --- a/backend/schema_primary.sql +++ b/backend/schema_primary.sql @@ -397,6 +397,7 @@ CREATE TABLE `driver` ( `address` text, `licenseIssueDate` varchar(50) DEFAULT NULL, `status` varchar(20) NOT NULL DEFAULT 'notDeleted', + `rejected_reason` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT 'سبب الرفض من خدمة العملاء', `birthdate` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL, `site` varchar(255) NOT NULL, `first_name` varchar(255) NOT NULL, diff --git a/backend/serviceapp/getDriverDetailsForActivate.php b/backend/serviceapp/getDriverDetailsForActivate.php index 82a64a8..2ce4aa9 100644 --- a/backend/serviceapp/getDriverDetailsForActivate.php +++ b/backend/serviceapp/getDriverDetailsForActivate.php @@ -29,6 +29,23 @@ if ($stmt->rowCount() > 0) { } } + // ✅ جلب روابط المستندات من driver_documents + $docsSql = "SELECT doc_type, link, image_name FROM driver_documents WHERE driverID = :driverId2 ORDER BY doc_type"; + $docsStmt = $con->prepare($docsSql); + $docsStmt->execute([':driverId2' => $driverId]); + $documents = $docsStmt->fetchAll(PDO::FETCH_ASSOC); + $row['documents'] = $documents ?: []; + + // ✅ فك JSON لـ ai_data و user_input + if (!empty($row['ai_data'])) { + $decoded = json_decode($row['ai_data'], true); + $row['ai_data'] = $decoded ?: $row['ai_data']; + } + if (!empty($row['user_input'])) { + $decoded = json_decode($row['user_input'], true); + $row['user_input'] = $decoded ?: $row['user_input']; + } + // ✅ إزالة الحقول الحسّاسة من الاستجابة $fieldsToRemove = ['password', 'password_hash', 'salt', 'reset_token']; foreach ($fieldsToRemove as $f) { @@ -37,6 +54,11 @@ if ($stmt->rowCount() > 0) { } } + // عشان الـ licenseIssueDate متناسق مع الفلتر + if (empty($row['licenseIssueDate']) && !empty($row['issue_date'])) { + $row['licenseIssueDate'] = $row['issue_date']; + } + // إرسال الاستجابة jsonSuccess([$row]); diff --git a/backend/serviceapp/rejectDriver.php b/backend/serviceapp/rejectDriver.php new file mode 100644 index 0000000..eb11b77 --- /dev/null +++ b/backend/serviceapp/rejectDriver.php @@ -0,0 +1,23 @@ +prepare($sql); +$stmt->execute([ + ':reason' => $reason ?: 'Rejected by service agent', + ':driverId' => $driverId, +]); + +if ($stmt->rowCount() > 0) { + jsonSuccess(["message" => "Driver rejected successfully."]); +} else { + jsonError("Driver not found or already rejected."); +}