public function store(Request $request)
 {
     ///validate data if it is in databse or not
     $data_to_val = $request->only('product_codes');
     $rule = AuctionController::getRule($request);
     $user = JWTAuth::parseToken()->authenticate();
     ///if login
     $validate = Validator::make($data_to_val, $rule);
     if ($user->role != 1) {
         return response()->json(['message', 'invalid Role']);
     }
     if ($validate->fails()) {
         return response()->json($validate->errors()->all());
     }
     ///open new auction
     $auction = new Auction();
     ////add finished time this is added by 1 hr
     $auction->finished_at = time() + 3600;
     $auction->buyer()->associate($user);
     $auction->save();
     $products = [];
     $product_codes = $request->get('product_codes');
     foreach ($product_codes as $key => $val) {
         $product = Product::where(['product_code' => $val])->get()->first();
         $products[$key] = $product;
     }
     $auction->products()->saveMany($products);
     if ($auction->products->count() >= 1) {
         /////Generating Defualt Bid
         foreach ($product_codes as $val) {
             $product = Product::where(['product_code' => $val])->get()->first();
             $product_descriptions = $product->product_descriptions;
             $lowest_price_description = ProductController::findLowestPriceProductDescription($product_descriptions);
             $bid = new Bid(['price' => $lowest_price_description->price]);
             $bid->seller()->associate($lowest_price_description->seller);
             $bid->auction()->associate($auction);
             $bid->save();
             $bid->products()->saveMany([$product]);
         }
         ////
         if ($auction->bids->count() >= 1) {
             $auction->status = 0;
             //opening
             $auction->save();
             return response()->json(['message', 'success']);
         }
     }
     return response()->json(['message', 'error occurred']);
 }
 public function auction1()
 {
     //Buyer 1 Product
     $data = ['name' => 'buyer', 'email' => '*****@*****.**', 'password' => Hash::make('buyer'), 'role' => '1'];
     $user = User::firstOrCreate($data);
     $user->save();
     $product = Product::firstOrNew(['product_code' => '12345']);
     $product1 = Product::firstOrNew(['product_code' => '12346']);
     $product2 = Product::firstOrNew(['product_code' => '12347']);
     $product3 = Product::firstOrNew(['product_code' => '12348']);
     $product4 = Product::firstOrNew(['product_code' => '12349']);
     $data = ['finished_at' => time() + 3600];
     $auction = new Auction($data);
     $auction->buyer()->associate($user);
     $auction->save();
     $products = [$product, $product1, $product2, $product3, $product4];
     $auction->products()->saveMany($products);
 }