prepare( "SELECT d.id, d.org_id, d.name, d.status, o.name_ar AS org_name FROM transit_drivers d JOIN transit_orgs o ON o.id = d.org_id WHERE d.invite_token=? LIMIT 1" ); $st->execute([$inviteToken]); $driver = $st->fetch(); if (!$driver) jsonError('Invalid invite token', 404); if ($driver['status'] === 'suspended') jsonError('Account suspended', 403); // تحقق أن main_driver_id ليس مضبوطاً لحساب آخر if ($driver['status'] === 'active') { $chk = $transit_con->prepare( "SELECT main_driver_id FROM transit_drivers WHERE id=? LIMIT 1" ); $chk->execute([$driver['id']]); $row = $chk->fetch(); if ($row && $row['main_driver_id'] && (string)$row['main_driver_id'] !== (string)$transit_user_id) { jsonError('This invite token is already linked to another account', 409); } // إذا كان نفس الحساب — رد نجاح مباشرة if ($row && (string)$row['main_driver_id'] === (string)$transit_user_id) { jsonSuccess([ 'driver_id' => (int)$driver['id'], 'org_id' => (int)$driver['org_id'], 'org_name' => $driver['org_name'], 'name' => $driver['name'], ], 'Already activated'); } } // ضبط main_driver_id وتفعيل الحساب $transit_con->prepare( "UPDATE transit_drivers SET main_driver_id=?, status='active', activated_at=NOW(), invite_token=NULL, updated_at=NOW() WHERE id=?" )->execute([(string)$transit_user_id, $driver['id']]); appLog("[TRANSIT][DRIVER] activated driver #{$driver['id']} (org#{$driver['org_id']}) linked to main_driver_id={$transit_user_id}", 'INFO'); jsonSuccess([ 'driver_id' => (int)$driver['id'], 'org_id' => (int)$driver['org_id'], 'org_name' => $driver['org_name'], 'name' => $driver['name'], ], 'Account activated successfully. Welcome to مواصلاتي!');