mohan #5

Merged
mohanmd merged 46 commits from mohan into master 2026-06-15 09:13:23 +00:00
3 changed files with 60 additions and 10 deletions
Showing only changes of commit c851f2e4da - Show all commits

View File

@ -73,12 +73,21 @@ public function updateProfile(Request $request)
/** @var User $employer */
$employer = $request->attributes->get('employer');
$sponsor = \App\Models\Sponsor::where('email', $employer->email)->first();
$validator = Validator::make($request->all(), [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users,email,' . $employer->id,
'email' => [
'required',
'string',
'email',
'max:255',
'unique:users,email,' . $employer->id,
$sponsor ? 'unique:sponsors,email,' . $sponsor->id : 'unique:sponsors,email',
],
'phone' => 'required|string|max:255',
'company_name' => 'required|string|max:255',
'language' => 'required|string|in:English,Arabic',
'language' => 'required|string|in:English,Arabic,english,arabic',
'notifications' => 'required|boolean',
'current_password' => 'nullable|required_with:new_password|string',
'new_password' => 'nullable|string|min:8|confirmed',
@ -106,12 +115,25 @@ public function updateProfile(Request $request)
}
}
// Find old email before update to locate the correct sponsor record
$oldEmail = $employer->getOriginal('email') ?? $employer->email;
// Update user table
$employer->update([
'name' => $request->name,
'email' => $request->email,
]);
// Sync with corresponding sponsor record if found
$matchingSponsor = \App\Models\Sponsor::where('email', $oldEmail)->first();
if ($matchingSponsor) {
$matchingSponsor->update([
'full_name' => $request->name,
'email' => $request->email,
'mobile' => $request->phone,
]);
}
// Update employer_profiles table
$profile = $employer->employerProfile;
if (!$profile) {
@ -119,7 +141,7 @@ public function updateProfile(Request $request)
}
$profile->company_name = $request->company_name;
$profile->phone = $request->phone;
$profile->language = $request->language;
$profile->language = ucfirst(strtolower($request->language));
$profile->notifications = $request->notifications;
$profile->save();

View File

@ -82,12 +82,21 @@ public function update(Request $request)
return back()->withErrors(['general' => 'User session not found.']);
}
$sponsor = \App\Models\Sponsor::where('email', $user->email)->first();
$request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users,email,' . $user->id,
'email' => [
'required',
'string',
'email',
'max:255',
'unique:users,email,' . $user->id,
$sponsor ? 'unique:sponsors,email,' . $sponsor->id : 'unique:sponsors,email',
],
'phone' => 'required|string|max:255',
'company_name' => 'required|string|max:255',
'language' => 'required|string|in:English,Arabic',
'language' => 'required|string|in:English,Arabic,english,arabic',
'notifications' => 'required|boolean',
'nationality' => 'nullable|string|max:255',
'family_size' => 'nullable|string|max:255',
@ -99,12 +108,24 @@ public function update(Request $request)
'new_password' => 'nullable|string|min:8|confirmed',
]);
$oldEmail = $user->getOriginal('email') ?? $user->email;
// Update User Model
$user->update([
'name' => $request->name,
'email' => $request->email,
]);
// Sync with corresponding sponsor record if found
$matchingSponsor = \App\Models\Sponsor::where('email', $oldEmail)->first();
if ($matchingSponsor) {
$matchingSponsor->update([
'full_name' => $request->name,
'email' => $request->email,
'mobile' => $request->phone,
]);
}
// Update EmployerProfile
$profile = $user->employerProfile;
if (!$profile) {
@ -112,7 +133,7 @@ public function update(Request $request)
}
$profile->company_name = $request->company_name;
$profile->phone = $request->phone;
$profile->language = $request->language;
$profile->language = ucfirst(strtolower($request->language));
$profile->notifications = $request->notifications;
$profile->nationality = $request->nationality;

View File

@ -1908,7 +1908,9 @@
"type": "string",
"enum": [
"English",
"Arabic"
"Arabic",
"english",
"arabic"
],
"example": "English"
},
@ -2086,7 +2088,10 @@
"items": {
"type": "string"
},
"example": ["childcare", "cooking"]
"example": [
"childcare",
"cooking"
]
},
"availability_status": {
"type": "string",
@ -2117,7 +2122,10 @@
"items": {
"type": "string"
},
"example": ["English", "Tagalog"]
"example": [
"English",
"Tagalog"
]
},
"age": {
"type": "integer",
@ -2176,7 +2184,6 @@
}
},
"/employers/candidates": {
"get": {
"tags": [
"Employer/Pipeline"