/**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     $faker = Faker\Factory::create();
     $teamIds = Team::lists('id')->toArray();
     $userIds = User::lists('id')->toArray();
     $eventId = Event::current()->id;
     foreach ($teamIds as $teamId) {
         for ($i = 1; $i <= $faker->numberBetween(2, floor(count($userIds) / count($teamIds))); $i++) {
             DB::table('users_pivot_team_user')->insert(['team_id' => $teamId, 'user_id' => $faker->unique()->randomElement($userIds), 'event_id' => $eventId]);
         }
     }
 }
 public function anglers()
 {
     $event = Event::current();
     $users = User::with(['categories', 'club'])->whereHas('weighIns', function ($query) use($event) {
         $query->where('event_id', '=', $event->id);
     })->get()->transform(function ($v) use($event) {
         $categories = null;
         if (!is_null($v->categories)) {
             foreach ($v->categories as $cat) {
                 $categories[] = ['id' => $cat['id'], 'name' => $cat['name']];
             }
         }
         $bestFish = Entry::with('species')->where('user_id', '=', $v['id'])->where('event_id', '=', $event->id)->orderBy('percentage', 'desc')->select('percentage', 'weight', 'species_id')->first();
         return ['id' => $v['id'], 'fullName' => $v['last_name'] . ' ' . $v['first_name'], 'categories' => $categories, 'club' => ['id' => $v['club']['id'], 'name' => $v['club']['name']], 'fishCount' => Entry::where('user_id', '=', $v['id'])->where('event_id', '=', $event->id)->get()->count(), 'bestFish' => ['name' => $bestFish['species']['name'], 'weight' => Helpers::fromDrams($bestFish['weight']), 'percentage' => round($bestFish['percentage']) . "%"]];
     })->toArray();
     return $this->respond(['data' => $users ?: null]);
 }