/**
  * Show the application dashboard to the user, including suggestions to the user.
  *
  * @return Response
  */
 public function index()
 {
     $user = User::where('id', \Auth::id())->with('placesWanted')->with('events')->first();
     if ($user->placesWanted) {
         $event_ids = EventPlace::select('event_id')->whereNotIn('event_id', $user->events->lists('id'))->whereIn('place_id', $user->placesWanted->lists('id'))->orderBy(\DB::raw('rand()'))->distinct()->take(6)->get()->lists('event_id')->toArray();
         if (sizeof($event_ids) < 6) {
             $placeStateWanted = Place::select('id')->whereIn('state', $user->placesWanted->lists('state'))->get();
             $event_ids = array_merge($event_ids, EventPlace::select('event_id')->whereNotIn('event_id', $user->events->lists('id'))->whereIn('place_id', $placeStateWanted->lists('id'))->orderBy(\DB::raw('rand()'))->distinct()->take(6 - sizeof($event_ids))->get()->lists('event_id')->toArray());
             if (sizeof($event_ids) < 6) {
                 $placeCountryWanted = Place::select('id')->whereIn('country', $user->placesWanted->lists('country'))->get();
                 $event_ids = array_merge($event_ids, EventPlace::select('event_id')->whereNotIn('event_id', $user->events->lists('id'))->whereIn('place_id', $placeCountryWanted->lists('id'))->orderBy(\DB::raw('rand()'))->distinct()->take(6 - sizeof($event_ids))->get()->lists('event_id')->toArray());
             }
         }
     }
     $events = Event::where('date_start', '>=', new \DateTime('today'))->whereIn('id', $event_ids)->get();
     if (sizeof($event_ids) < 6) {
         $events = $events->merge(Event::where('date_start', '>=', new \DateTime('today'))->orderBy(\DB::raw('rand()'))->take(6 - sizeof($event_ids))->get());
     }
     $auth_name = \Auth::User()->first_name;
     //$events = Event::take(5)->get();
     return view('home', compact('auth_name', 'events'));
 }