diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index ced0603..e2f316e 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -149,4 +149,31 @@ class ProfileController extends Controller return response()->json(['status' => 'success', 'message' => 'Email updated']); } + + /** + * POST /v2/profile/driver/shamcash + */ + public function updateShamCash(Request $request): JsonResponse + { + $id = $request->attributes->get('_jwt_user_id'); + $driver = Driver::active()->byId($id)->first(); + + if (!$driver) { + return response()->json(['status' => 'failure', 'message' => 'Not found'], 404); + } + + $accountBank = $request->input('accountBank') ?? $request->input('accountNumber'); + $bankCode = $request->input('bankCode') ?? $request->input('paymentProvider'); + + if (!$accountBank || !$bankCode) { + return response()->json(['status' => 'failure', 'message' => 'Missing fields'], 400); + } + + $driver->update([ + 'accountBank' => $this->enc->encrypt($accountBank), + 'bankCode' => $bankCode, + ]); + + return response()->json(['status' => 'success', 'message' => 'Sham Cash details updated']); + } } diff --git a/app/Models/Driver.php b/app/Models/Driver.php index 4909f80..6c850af 100644 --- a/app/Models/Driver.php +++ b/app/Models/Driver.php @@ -41,6 +41,7 @@ class Driver extends Model public const ENCRYPTED_FIELDS = [ 'first_name', 'last_name', 'phone', 'gender', 'email', 'national_number', 'name_arabic', 'address', 'birthdate', + 'accountBank', ]; // ── Relationships ── diff --git a/routes/api.php b/routes/api.php index 8a45f1b..73273b3 100644 --- a/routes/api.php +++ b/routes/api.php @@ -111,6 +111,7 @@ Route::prefix('v2')->middleware(['hmac.auth', 'jwt.auth'])->group(function () { Route::get('/profile/driver', [ProfileController::class, 'driver']); Route::match(['post', 'put'], '/profile/passenger', [ProfileController::class, 'updatePassenger']); Route::match(['post', 'put'], '/profile/driver/email', [ProfileController::class, 'updateDriverEmail']); + Route::post('/profile/driver/shamcash', [ProfileController::class, 'updateShamCash']); // ── Wallet ── // All wallet operations (balance, funds, transactions) are handled by the