validated(); $deviceToken = DeviceToken::updateOrCreate( ['expo_push_token' => $data['expo_push_token']], [ 'platform' => $data['platform'] ?? null, 'user_id' => $request->user()->getKey(), ], ); return response()->json([ 'message' => $deviceToken->wasRecentlyCreated ? 'Token appareil enregistré.' : 'Token appareil mis à jour.', 'deviceToken' => [ 'id' => $deviceToken->id, 'expoPushToken' => $deviceToken->expo_push_token, 'platform' => $deviceToken->platform, ], ], $deviceToken->wasRecentlyCreated ? 201 : 200); } public function destroy(Request $request): Response { $data = $request->validate([ 'expo_push_token' => ['required', 'string', 'max:255'], ]); DeviceToken::query() ->where('user_id', $request->user()->getKey()) ->where('expo_push_token', $data['expo_push_token']) ->delete(); return response()->noContent(); } }