/**
  * Get the validation rules that apply to the request.
  *
  * @return array
  */
 public function rules()
 {
     if (SiteConstants::isTalent(Session::get(SiteSessions::USER_TYPE))) {
         return ['dob' => 'date', 'gender' => 'in:' . implode(",", array_keys(UserProfileRepository::getUserGender())), 'height' => '', 'weight' => '', 'mobile_number' => 'numeric', 'home_number' => 'numeric', 'address_type' => 'in:' . implode(",", array_keys(UserProfileRepository::getAddressTypes())), 'zip' => 'numeric', 'country' => 'in:' . implode(",", array_keys(BasicSiteRepository::getListOfCountries())), 'graduation_year' => 'numeric', 'father_mobile_number' => 'numeric', 'father_living_with' => 'in:' . implode(",", array_keys(UserProfileRepository::getLivingWithType())), 'mother_mobile_number' => 'numeric', 'mother_living_with' => 'in:' . implode(",", array_keys(UserProfileRepository::getLivingWithType())), 'guardian_mobile_number' => 'numeric', 'guardian_living_with' => 'in:' . implode(",", array_keys(UserProfileRepository::getLivingWithType())), 'school_type' => 'in:' . implode(",", array_keys(UserProfileRepository::getInstituteType())), 'school_zip' => 'regex:/^\\d{4,5}$/', 'school_country' => 'in:' . implode(",", array_keys(BasicSiteRepository::getListOfCountries())), 'school_contact_person_phone' => 'numeric', 'grade_avg' => 'in:' . implode(",", array_keys(UserProfileRepository::getGradeAverageType())), 'sat_verbal' => 'regex:/^\\d+(\\.?\\d+)?$/', 'sat_math' => 'regex:/^\\d+(\\.?\\d+)?$/', 'sat_writing' => 'regex:/^\\d+(\\.?\\d+)?$/', 'sat_reading' => 'regex:/^\\d+(\\.?\\d+)?$/', 'sat_overall' => 'regex:/^\\d+(\\.?\\d+)?$/', 'pact' => 'regex:/^\\d+(\\.?\\d+)?$/', 'act' => 'regex:/^\\d+(\\.?\\d+)?$/', 'psat' => 'regex:/^\\d+(\\.?\\d+)?$/'];
     } else {
         if (SiteConstants::isManager(Session::get(SiteSessions::USER_TYPE))) {
             return ['dob' => 'date', 'gender' => 'in:' . implode(",", array_keys(UserProfileRepository::getUserGender())), 'mobile_number' => 'numeric', 'home_number' => 'numeric', 'address_type' => 'in:' . implode(",", array_keys(UserProfileRepository::getAddressTypes())), 'zip' => 'numeric', 'country' => 'in:' . implode(",", array_keys(BasicSiteRepository::getListOfCountries()))];
         }
     }
 }
 public function getguardianLivingWithAttribute($living_with_guardian)
 {
     if ($this->getMutatedData) {
         return array_search($living_with_guardian, UserProfileRepository::getLivingWithType());
     } else {
         return $living_with_guardian;
     }
 }
 /**
  * Show the form for editing the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function edit()
 {
     $user = UserProfile::find(Session::get(SiteSessions::USER_ID));
     $gender = UserProfileRepository::getUserGender();
     $addressType = UserProfileRepository::getAddressTypes();
     $instituteType = UserProfileRepository::getInstituteType();
     $country = BasicSiteRepository::getListOfCountries();
     $livingWith = UserProfileRepository::getLivingWithType();
     $gradeAverage = UserProfileRepository::getGradeAverageType();
     $sports = BasicSiteRepository::getSportTypes();
     if (SiteConstants::isTalent(Session::get(SiteSessions::USER_TYPE))) {
         $userProfile = UserProfile::find($user->user_id);
         return view('profile.talent.edit', compact('userProfile', 'gender', 'addressType', 'instituteType', 'country', 'livingWith', 'gradeAverage'));
     } else {
         if (SiteConstants::isCoach(Session::get(SiteSessions::USER_TYPE))) {
             $managerProfile = ManagerProfile::find($user->user_id);
             $managerCareerInformation = $managerProfile->managerCareerInformation()->get();
             return view('profile.manager.edit', compact('managerProfile', 'gender', 'addressType', 'instituteType', 'country', 'livingWith', 'gradeAverage', 'sports'));
         } else {
             if (Session::get(SiteSessions::USER_ID) == "") {
                 return redirect('/');
             }
         }
     }
 }