diff --git a/app/Http/Controllers/Admin/AdminExtraController.php b/app/Http/Controllers/Admin/AdminExtraController.php index 7e5ef60..81590ae 100644 --- a/app/Http/Controllers/Admin/AdminExtraController.php +++ b/app/Http/Controllers/Admin/AdminExtraController.php @@ -486,6 +486,7 @@ public function announcements() 'posted_by' => $postedBy, 'organization' => $organization, 'status' => $ann->status ?? 'pending', + 'remarks' => $ann->remarks, 'created_at' => $ann->created_at ? $ann->created_at->format('M d, Y h:i A') : 'Just now', 'charityDetails' => $charityDetails, ]; @@ -547,8 +548,15 @@ public function approveAnnouncement(Request $request, $id) */ public function rejectAnnouncement(Request $request, $id) { + $request->validate([ + 'remarks' => 'required|string|max:1000', + ]); + $ann = \App\Models\Announcement::findOrFail($id); - $ann->update(['status' => 'rejected']); + $ann->update([ + 'status' => 'rejected', + 'remarks' => $request->remarks, + ]); return back()->with('success', 'Charity Event rejected successfully.'); } diff --git a/app/Http/Controllers/Api/EmployerAnnouncementController.php b/app/Http/Controllers/Api/EmployerAnnouncementController.php index 3b70148..daa98a7 100644 --- a/app/Http/Controllers/Api/EmployerAnnouncementController.php +++ b/app/Http/Controllers/Api/EmployerAnnouncementController.php @@ -36,6 +36,8 @@ public function getAnnouncements(Request $request) 'title' => $announcement->title, 'body' => $announcement->body, 'type' => $announcement->type, + 'status' => $announcement->status ?? 'pending', + 'remarks' => $announcement->remarks, 'created_at' => $announcement->created_at->toISOString(), 'time_ago' => $announcement->created_at->diffForHumans(), ]; @@ -123,6 +125,8 @@ public function createAnnouncement(Request $request) 'title' => $announcement->title, 'body' => $announcement->body, 'type' => $announcement->type, + 'status' => $announcement->status ?? 'pending', + 'remarks' => $announcement->remarks, 'created_at' => $announcement->created_at->toISOString(), 'time_ago' => $announcement->created_at->diffForHumans(), ] diff --git a/app/Http/Controllers/Api/WorkerProfileController.php b/app/Http/Controllers/Api/WorkerProfileController.php index aedba66..2020713 100644 --- a/app/Http/Controllers/Api/WorkerProfileController.php +++ b/app/Http/Controllers/Api/WorkerProfileController.php @@ -7,6 +7,7 @@ use App\Models\Worker; use App\Models\WorkerDocument; use App\Models\ProfileView; +use App\Models\Conversation; use App\Models\EmployerProfile; use App\Models\Announcement; use Illuminate\Http\Request; @@ -538,6 +539,12 @@ public function getDashboard(Request $request) // 2. Count of sponsors who viewed the profile $viewsCount = ProfileView::where('worker_id', $worker->id)->count(); + // Unique count of employers who viewed this profile + $profileViewed = ProfileView::where('worker_id', $worker->id)->distinct('employer_id')->count('employer_id'); + + // Unique count of employers who contacted this worker + $employerContacted = Conversation::where('worker_id', $worker->id)->distinct('employer_id')->count('employer_id'); + // 3. Currently working sponsor/employer $currentSponsor = null; $acceptedOffer = JobOffer::where('worker_id', $worker->id) @@ -608,6 +615,8 @@ public function getDashboard(Request $request) 'data' => [ 'active_status' => $activeStatus, 'count_sponsors_viewed' => $viewsCount, + 'employer_contacted' => $employerContacted, + 'profile_viewed' => $profileViewed, 'currently_working_sponsor' => $currentSponsor, 'latest_charity_events_list' => $charityEvents ] diff --git a/app/Http/Controllers/Employer/AnnouncementController.php b/app/Http/Controllers/Employer/AnnouncementController.php index cdc3fb0..34f0ae4 100644 --- a/app/Http/Controllers/Employer/AnnouncementController.php +++ b/app/Http/Controllers/Employer/AnnouncementController.php @@ -52,6 +52,7 @@ public function index(Request $request) 'isCharity' => $isCharity, 'charityDetails' => $charityDetails, 'status' => $ann->status ?? 'pending', + 'remarks' => $ann->remarks, 'created_at' => $ann->created_at->diffForHumans(), ]; })->toArray(); diff --git a/app/Http/Controllers/Employer/WorkerController.php b/app/Http/Controllers/Employer/WorkerController.php index 5d58afe..9053c4d 100644 --- a/app/Http/Controllers/Employer/WorkerController.php +++ b/app/Http/Controllers/Employer/WorkerController.php @@ -379,6 +379,8 @@ public function show($id) 'reviews_count' => $reviewsCount, 'reviews' => $reviews, 'similar_workers' => $similarWorkers, + 'status' => $w->status, + 'availability_status' => $w->status, ]; return Inertia::render('Employer/Workers/Show', [ diff --git a/app/Models/Announcement.php b/app/Models/Announcement.php index 8a6a417..00dd476 100644 --- a/app/Models/Announcement.php +++ b/app/Models/Announcement.php @@ -16,6 +16,7 @@ class Announcement extends Model 'employer_id', 'sponsor_id', 'status', + 'remarks', ]; /** diff --git a/database/migrations/2026_06_10_141140_add_remarks_to_announcements_table.php b/database/migrations/2026_06_10_141140_add_remarks_to_announcements_table.php new file mode 100644 index 0000000..cabee56 --- /dev/null +++ b/database/migrations/2026_06_10_141140_add_remarks_to_announcements_table.php @@ -0,0 +1,28 @@ +text('remarks')->nullable()->after('status'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('announcements', function (Blueprint $table) { + $table->dropColumn('remarks'); + }); + } +}; diff --git a/public/uploads/documents/1781087120_passport_passport.pdf b/public/uploads/documents/1781087120_passport_passport.pdf new file mode 100644 index 0000000..e69de29 diff --git a/public/uploads/documents/1781087242_passport_passport.pdf b/public/uploads/documents/1781087242_passport_passport.pdf new file mode 100644 index 0000000..e69de29 diff --git a/public/uploads/documents/1781087905_passport_passport.pdf b/public/uploads/documents/1781087905_passport_passport.pdf new file mode 100644 index 0000000..e69de29 diff --git a/public/uploads/documents/1781087935_passport_passport.pdf b/public/uploads/documents/1781087935_passport_passport.pdf new file mode 100644 index 0000000..e69de29 diff --git a/public/uploads/documents/1781087948_passport_passport.pdf b/public/uploads/documents/1781087948_passport_passport.pdf new file mode 100644 index 0000000..e69de29 diff --git a/public/uploads/documents/1781088129_passport_national-id.jpg b/public/uploads/documents/1781088129_passport_national-id.jpg new file mode 100644 index 0000000..d266d07 Binary files /dev/null and b/public/uploads/documents/1781088129_passport_national-id.jpg differ diff --git a/public/uploads/licenses/1781087119_license_license.pdf b/public/uploads/licenses/1781087119_license_license.pdf new file mode 100644 index 0000000..e69de29 diff --git a/public/uploads/licenses/1781087242_license_license.pdf b/public/uploads/licenses/1781087242_license_license.pdf new file mode 100644 index 0000000..e69de29 diff --git a/public/uploads/licenses/1781087905_license_license.pdf b/public/uploads/licenses/1781087905_license_license.pdf new file mode 100644 index 0000000..e69de29 diff --git a/public/uploads/licenses/1781087935_license_license.pdf b/public/uploads/licenses/1781087935_license_license.pdf new file mode 100644 index 0000000..e69de29 diff --git a/public/uploads/licenses/1781087948_license_license.pdf b/public/uploads/licenses/1781087948_license_license.pdf new file mode 100644 index 0000000..e69de29 diff --git a/resources/js/Layouts/EmployerLayout.jsx b/resources/js/Layouts/EmployerLayout.jsx index 59c5df1..e5cd2d0 100644 --- a/resources/js/Layouts/EmployerLayout.jsx +++ b/resources/js/Layouts/EmployerLayout.jsx @@ -164,7 +164,18 @@ export default function EmployerLayout({ children, title, fullPage = false }) {