authenticate(); } catch (\Exception $e) { return response()->json([ 'success' => false, 'message' => 'Token invalid or expired', ], 401); } if (! $user) { return response()->json([ 'success' => false, 'message' => 'Unauthorized' ], 401); } return response()->json([ 'success' => true, 'data' => [ 'customer_id' => $user->customer_id, 'customer_name' => $user->customer_name, 'company_name' => $user->company_name, 'designation' => $user->designation, 'email' => $user->email, 'mobile' => $user->mobile_no, 'address' => $user->address, 'pincode' => $user->pincode, 'status' => $user->status, 'customer_type' => $user->customer_type, 'profile_image' => $user->profile_image ? url($user->profile_image) : null, 'date' => $user->date, 'created_at' => $user->created_at, ] ]); } /** * Update profile IMAGE only (no admin approval) */ public function updateProfileImage(Request $request) { $user = JWTAuth::parseToken()->authenticate(); if (! $user) { return response()->json([ 'success' => false, 'message' => 'Unauthorized' ], 401); } $request->validate([ 'profile_image' => 'required|image|mimes:jpg,jpeg,png|max:2048' ]); // DELETE OLD IMAGE if ($user->profile_image && file_exists(public_path($user->profile_image))) { @unlink(public_path($user->profile_image)); } // SAVE NEW IMAGE $file = $request->file('profile_image'); $filename = 'profile_' . time() . '.' . $file->getClientOriginalExtension(); $folder = 'profile_upload/'; $file->move(public_path($folder), $filename); $user->profile_image = $folder . $filename; $user->save(); return response()->json([ 'success' => true, 'message' => 'Profile image updated successfully', 'data' => [ 'customer_id' => $user->customer_id, 'customer_name' => $user->customer_name, 'company_name' => $user->company_name, 'designation' => $user->designation, 'email' => $user->email, 'mobile' => $user->mobile_no, 'address' => $user->address, 'pincode' => $user->pincode, 'status' => $user->status, 'customer_type' => $user->customer_type, 'profile_image' => url($user->profile_image), 'date' => $user->date, ] ]); } /** * Submit profile update request (requires admin approval) */ public function updateProfileRequest(Request $request) { $user = JWTAuth::parseToken()->authenticate(); if (! $user) { return response()->json([ 'success' => false, 'message' => 'Unauthorized' ], 401); } // Validate input $request->validate([ 'customer_name' => 'nullable|string|max:255', 'company_name' => 'nullable|string|max:255', 'designation' => 'nullable|string|max:255', 'email' => 'nullable|email', 'mobile_no' => 'nullable|string|max:15', 'address' => 'nullable|string', 'pincode' => 'nullable|string|max:10' ]); // SAVE AS ARRAY (NOT JSON STRING!) $updateReq = \App\Models\UpdateRequest::create([ 'user_id' => $user->id, 'data' => $request->all(), // <---- FIXED 'status' => 'pending', ]); return response()->json([ 'success' => true, 'message' => 'Profile update request submitted. Waiting for admin approval.', 'request_id' => $updateReq->id ]); } }