/**
  * Handle the event.
  *
  * @param  MerchantsWasCreated  $event
  * @return void
  */
 public function handle(MerchantsWasCreated $event)
 {
     $event->request->merge(array('merchant_id' => $event->merchant_id, 'outlet_no' => md5($event->merchant_id)));
     $restaurant = $this->restaurant->create($event->request->all());
     $this->outlet->create($event->request->all());
     foreach ($event->request->cuisine_id as $key => $value) {
         $this->restaurantCuisineInterface->create(['restaurant_id' => $restaurant->id, 'cuisine_id' => $value]);
     }
     return true;
 }
 /**
  * Display merchant profile page.
  *
  * @return View
  */
 public function index()
 {
     $merchant_id = Auth::user()->id;
     $restaurant = $this->restaurant->getByAttributes(['merchant_id' => $merchant_id], false);
     $selected_cuisines = $this->restaurantCuisine->getByAttributesWithRelations(['restaurant_id' => $restaurant->id], ['cuisine'])->toArray();
     $cuisines_id = array_map(function ($structure) {
         return $structure['cuisine']['id'];
     }, $selected_cuisines);
     $data = array('merchant' => $this->merchant->getById($merchant_id), 'restaurant' => $restaurant, 'snapshot' => $this->snapshot->getByAttributes(['merchant_id' => $merchant_id]), 'outlet' => $this->outlet->getByAttributes(['merchant_id' => $merchant_id, 'main' => 1], false), 'outlets' => $this->outlet->getByAttributes(['merchant_id' => $merchant_id, 'main' => 0]), 'restaurant_cuisine' => $selected_cuisines, 'cuisines' => $this->cuisine->getAll(), 'cuisines_id' => $cuisines_id);
     return view('merchant.profile', $data);
 }
 /**
  * Edit an merchant profile restaurant.
  *
  * @param integer $id
  * @param Outlet $request
  * @return Redirect
  */
 public function update($id, RestaurantRequest $request)
 {
     if ($this->restaurant->updateById($id, $request->all())) {
         foreach ($request->res_cuisine as $key => $value) {
             if (!$this->restaurantCuisine->getByAttributes(['restaurant_id' => $id, 'cuisine_id' => $value])) {
                 $this->restaurantCuisine->create(['restaurant_id' => $id, 'cuisine_id' => $value]);
             }
         }
         return redirect('merchant-profile')->with('message', 'Successfully updated.');
     }
     return redirect('merchant-profile')->withInput();
 }