diff --git a/Modules/CCMS/app/Http/Controllers/VacancyController.php b/Modules/CCMS/app/Http/Controllers/VacancyController.php
new file mode 100644
index 0000000..4dce270
--- /dev/null
+++ b/Modules/CCMS/app/Http/Controllers/VacancyController.php
@@ -0,0 +1,147 @@
+ajax()) {
+ $model = Vacancy::query()->latest();
+ return DataTables::eloquent($model)
+ ->addIndexColumn()
+ // ->setRowClass(function (Vacancy $vacancy) {
+ // return $vacancy->is_read ? 'text-muted' : 'text-dark';
+ // })
+ // ->editColumn('class', function (Vacancy $vacancy) {
+ // return $vacancy->class ?? '-';
+ // })
+ // ->editColumn('subject', function (Vacancy $vacancy) {
+ // return $vacancy->subject ?? '-';
+ // })
+ // ->editColumn('message', function (Vacancy $vacancy) {
+ // return $vacancy->message ?? '-';
+ // })
+ ->addColumn('action', 'ccms::vacancy.datatable.action')
+ ->rawColumns(['action'])
+ ->toJson();
+ }
+ return view('ccms::vacancy.index', [
+ 'title' => 'Vacancy List',
+ ]);
+ }
+
+ /**
+ * Show the form for creating a new resource.
+ */
+ public function create()
+ {
+ //
+ }
+
+ /**
+ * Store a newly created resource in storage.
+ */
+ public function store(Request $request)
+ {
+ try {
+ // $rules = [
+
+
+ // ];
+
+ // if (setting('enable_reCaptcha') == 1) {
+ // $rules['g-recaptcha-response'] = ['required', new Recaptcha];
+ // }
+
+ // $messages = [
+ // 'email.email' => 'Must be a valid email address.',
+ // 'g-recaptcha-response.required' => 'Please complete reCAPTCHA validation.',
+ // 'g-recaptcha-response' => 'Invalid reCAPTCHA.',
+ // ];
+
+ // $validator = Validator::make($request->all());
+ // if ($validator->fails()) {
+ // return response()->json(['errors' => $validator->errors()], 422);
+ // }
+
+ $modelClass = "Modules\\CCMS\\Models\\Career";
+
+ $model = $modelClass::findOrFail($request->career_id);
+ foreach ($request->document as $file) {
+ $model->addToDocumentCollection(collectionName: 'uploads/document', file: $file, documentName: $request->first_name, referenceDocumentId: null);
+ }
+
+ Vacancy::create($request->all());
+
+ return response()->json(['status' => 200, 'message' => "Thank you for reaching out! Your message has been received and we'll get back to you shortly."], 200);
+ } catch (\Exception $e) {
+ return response()->json(['status' => 500, 'message' => 'Internal server error', 'error' => $e->getMessage()], 500);
+ }
+ }
+
+ /**
+ * Show the specified resource.
+ */
+ public function show($id)
+ {
+ //
+ }
+
+ /**
+ * Show the form for editing the specified resource.
+ */
+ public function edit($id)
+ {
+ //
+ }
+
+ /**
+ * Update the specified resource in storage.
+ */
+ public function update(Request $request, $id)
+ {
+ //
+ }
+
+ /**
+ * Remove the specified resource from storage.
+ */
+ public function destroy($id)
+ {
+ try {
+ $vacancy = Vacancy::whereId($id)->first();
+ if ($vacancy) {
+ $vacancy->delete();
+ }
+ return response()->json(['status' => 200, 'message' => 'Vacancy has been deleted!'], 200);
+ } catch (\Throwable $th) {
+ return redirect()->back()->with('error', $th->getMessage());
+ }
+ }
+
+ public function markAsRead($id)
+ {
+ try {
+ $vacancy = Vacancy::whereId($id)->first();
+ if ($vacancy) {
+ $vacancy->update(['is_read' => 1]);
+ }
+ return response()->json(['status' => 200, 'message' => 'Vacancy has been marked as read!'], 200);
+ } catch (\Throwable $th) {
+ return redirect()->back()->with('error', $th->getMessage());
+ }
+ }
+}
diff --git a/Modules/CCMS/app/Models/Vacancy.php b/Modules/CCMS/app/Models/Vacancy.php
new file mode 100644
index 0000000..b8607f1
--- /dev/null
+++ b/Modules/CCMS/app/Models/Vacancy.php
@@ -0,0 +1,21 @@
+id();
+ $table->string('first_name')->nullable();
+ $table->string('last_name')->nullable();
+ $table->string('email')->nullable();
+ $table->string('phone')->nullable();
+ $table->string('qualification')->nullable();
+ $table->text('description')->nullable();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('vacancies');
+ }
+};
diff --git a/Modules/User/routes/client.php b/Modules/User/routes/client.php
index 599de34..5b37344 100644
--- a/Modules/User/routes/client.php
+++ b/Modules/User/routes/client.php
@@ -5,6 +5,7 @@ use Illuminate\Support\Facades\Route;
use Modules\CCMS\Http\Controllers\EnquiryController;
use Modules\CCMS\Http\Controllers\FranchiseController;
use Modules\CCMS\Http\Controllers\NewsletterController;
+use Modules\CCMS\Http\Controllers\VacancyController;
use Modules\CCMS\Models\Franchise;
use Modules\CourseFinder\Http\Controllers\CoopController;
use Modules\CourseFinder\Http\Controllers\ProgramController;
@@ -24,6 +25,7 @@ Route::get('getCoursesList', [ProgramController::class, 'getCoursesList'])->name
Route::post('enquiry', [EnquiryController::class, 'store'])->name('enquiry.store');
Route::post('franchise', [FranchiseController::class, 'store'])->name('franchise.store');
Route::post('newsletter', [NewsletterController::class, 'store'])->name('newsletter.store');
+Route::post('vacancy', [VacancyController::class, 'store'])->name('vacancy.store');
Route::get('career/{id}', [WebsiteController::class, 'careerSingle'])->name('career.single');
diff --git a/app/Traits/AddToDocumentCollection.php b/app/Traits/AddToDocumentCollection.php
index bff2a4b..e18cb10 100644
--- a/app/Traits/AddToDocumentCollection.php
+++ b/app/Traits/AddToDocumentCollection.php
@@ -11,6 +11,7 @@ trait AddToDocumentCollection
{
public function addToDocumentCollection(string $collectionName = 'uploads', string $file, ?string $documentName = null, ?int $referenceDocumentId = null)
{
+ dd($documentName);
if (!Storage::disk('public')->exists($collectionName)) {
Storage::disk('public')->makeDirectory($collectionName);
}
diff --git a/resources/views/client/raffles/layouts/app.blade.php b/resources/views/client/raffles/layouts/app.blade.php
index b6a868a..7fe92ee 100644
--- a/resources/views/client/raffles/layouts/app.blade.php
+++ b/resources/views/client/raffles/layouts/app.blade.php
@@ -219,7 +219,7 @@
});
-
-
+
+