/**
  *	delete key registered (Only this seller)
  *	@param	$id 	int|string 	id the virtual product
  *	@param	$res 	Request 	object to validate the type of request, action
  *	@return	json
  */
 public function deleteKey($id, Request $res)
 {
     if (!$res->wantsJson()) {
         return redirect()->back();
     }
     $VirtualProduct = VirtualProduct::find($id);
     if (!count($VirtualProduct->toArray())) {
         return json_encode(['message' => trans('globals.error_not_available')]);
     }
     $product = Product::find($VirtualProduct->product_id);
     if (!count($product->toArray())) {
         return json_encode(['message' => trans('globals.error_not_available')]);
     }
     if ($product->user_id != \Auth::id()) {
         return json_encode(['message' => trans('globals.not_access')]);
     }
     $VirtualProductOrder = VirtualProductOrder::where('virtual_product_id', $VirtualProduct->id)->get();
     if (count($VirtualProductOrder->toArray()) > 0) {
         return json_encode(['message' => trans('product.virtualProductsController_controller.key_been_sold')]);
     }
     $VirtualProduct->status = 'cancelled';
     $VirtualProduct->save();
     $stock = count(VirtualProduct::where('product_id', $product->id)->where('status', 'open')->get()->toArray());
     $product->stock = $stock;
     if ($stock == 0) {
         $product->status = 0;
     }
     $product->save();
     return json_encode(['success' => trans('product.controller.saved_successfully')]);
 }
 public function showKeyVirtualProductPurchased($idProduct, $idOrder, Request $request)
 {
     if (!$request->wantsJson()) {
         return ['message' => trans('globals.error_not_available')];
     }
     $product = Product::find($idProduct);
     $order = Order::find($idOrder);
     $virtual = VirtualProduct::select('id')->where('product_id', $idProduct)->get()->toArray();
     if (!$product || !$order || !count($virtual)) {
         return ['message' => trans('globals.error_not_available'), 'id' => false];
     }
     if ($order->user_id != \Auth::id()) {
         return ['message' => trans('globals.error_not_available'), 'my' => false];
     }
     $virtualOrder = VirtualProductOrder::where('order_id', $order->id)->whereIn('virtual_product_id', $virtual)->get();
     if (!count($virtualOrder)) {
         return ['message' => trans('globals.error_not_available'), 'order' => false];
     }
     $user = User::find(\Auth::id());
     $return = ['info' => ['name' => $product->name, 'des' => $product->description, 'num' => count($virtualOrder)]];
     foreach ($virtualOrder as $row) {
         if (isset($return['users'][$row['email']])) {
             $key = VirtualProduct::find($row['virtual_product_id']);
             $return['users'][$row['email']]['keys'][] = $key['key'];
         } else {
             $key = VirtualProduct::find($row['virtual_product_id']);
             $return['users'][$row['email']]['keys'][0] = $key['key'];
             $return['users'][$row['email']]['title'] = $row['email'] == $user['email'] ? 'Your Keys' : 'Keys sent to ' . $row['email'];
         }
     }
     return $return;
 }