/** * Opportunities for Sport Talent - either Aspiring professional or Student * @param $state * @param $institution_tye * @param $gender * @param $sport_type */ public function talentOpportunities($state = null, $institution_type = null, $gender = null, $sport_type = null, $country = null) { $talent_management_level = Session::get(SiteSessions::USER_MANAGEMENT_LEVEL); $managers = null; switch ($talent_management_level) { case SiteConstants::USER_TALENT_MANAGEMENT_LEVEL_STUDENT: //Management level and Gender requested by the user. $managerManagementLevel = null; //If Institution type is "High School" if ($institution_type == 1) { $managerManagementLevel = SiteConstants::USER_MANAGER_MANAGEMENT_LEVEL_HIGH_SCHOOL; } else { if ($institution_type == 2) { $managerManagementLevel = SiteConstants::USER_MANAGER_MANAGEMENT_LEVEL_UNIVERSITY; } } $managers = ManagersDatabase::managerType(SiteConstants::USER_MANAGER_COACH)->managementLevel($managerManagementLevel)->state($state)->sportGender($gender)->sport($sport_type)->paginate(25); break; case SiteConstants::USER_TALENT_MANAGEMENT_LEVEL_ASPIRING_PRO: $managers = ManagersDatabase::country($country)->sport($sport_type)->sportGender($gender)->whereIn('management_level', [SiteConstants::USER_MANAGER_MANAGEMENT_LEVEL_AMATEUR, SiteConstants::USER_MANAGER_MANAGEMENT_LEVEL_PRO, SiteConstants::USER_MANAGER_MANAGEMENT_LEVEL_SEMI_PRO])->paginate(25); break; } $managers_already_contacted = DB::table("managers_contacted")->where('user_id', '=', Session::get(SiteSessions::USER_ID))->lists('manager_id'); $userProfile = UserProfile::find(Session::get(SiteSessions::USER_ID)); $userProfile->getMutatedData = false; $sport_gender = array_map('ucfirst', array_merge(['0' => '-- Select Option --'], SportsRepository::getSportsGender())); $state = array_map('ucfirst', array_merge(['0' => "-- Select State --"], BasicSiteRepository::getAmericanState())); $institution_type = array_map('ucfirst', UserProfileRepository::getInstituteType()); $country = array_map('ucfirst', BasicSiteRepository::getListOfCountries()); return view('database.talent_database_search_result', compact('managers', 'managers_already_contacted', 'userProfile', 'sport_gender', 'state', 'institution_type', 'country')); }