78 lines
2.7 KiB
PHP
78 lines
2.7 KiB
PHP
<?php
|
||
|
||
namespace App\Http\Controllers;
|
||
|
||
use App\Models\CareerApplication;
|
||
use Illuminate\Http\Request;
|
||
use Illuminate\Support\Facades\Storage;
|
||
|
||
class CareerController extends Controller
|
||
{
|
||
public function index()
|
||
{
|
||
return view('front.career.index', [
|
||
'meta' => [
|
||
'title' => __('career.job_application_title', ['default' => 'İş Başvurusu']),
|
||
'description' => __('career.job_application_description', ['default' => 'Ekibimize katılmak için aşağıdaki formu doldurarak CV\'nizi iletebilirsiniz.']),
|
||
]
|
||
]);
|
||
}
|
||
|
||
public function internship()
|
||
{
|
||
return view('front.career.internship', [
|
||
'meta' => [
|
||
'title' => __('career.internship_title', ['default' => 'Staj Başvurusu']),
|
||
'description' => __('career.internship_description', ['default' => 'Uzaktan staj programımız hakkında bilgi alın ve başvurunuzu yapın.']),
|
||
]
|
||
]);
|
||
}
|
||
|
||
public function store(Request $request)
|
||
{
|
||
$rules = [
|
||
'name' => 'required|string|max:255',
|
||
'email' => 'required|email|max:255',
|
||
'phone' => 'nullable|string|max:20',
|
||
'cv' => 'required|file|mimes:pdf,doc,docx|max:5120', // Max 5MB
|
||
'message' => 'nullable|string',
|
||
];
|
||
|
||
if ($request->type === 'job') {
|
||
$rules['nda'] = 'required|file|mimes:pdf|max:5120';
|
||
$rules['contract'] = 'required|file|mimes:pdf|max:5120';
|
||
$rules['git_knowledge'] = 'accepted';
|
||
$rules['ai_usage'] = 'accepted';
|
||
}
|
||
|
||
$request->validate($rules);
|
||
|
||
$cvPath = $request->file('cv') ? $request->file('cv')->store('cvs', 'public') : null;
|
||
$ndaPath = $request->file('nda') ? $request->file('nda')->store('ndas', 'public') : null;
|
||
$contractPath = $request->file('contract') ? $request->file('contract')->store('contracts', 'public') : null;
|
||
|
||
CareerApplication::create([
|
||
'name' => $request->name,
|
||
'email' => $request->email,
|
||
'phone' => $request->phone,
|
||
'type' => $request->type ?? 'job',
|
||
'cv_path' => $cvPath,
|
||
'nda_path' => $ndaPath,
|
||
'contract_path' => $contractPath,
|
||
'git_knowledge' => $request->has('git_knowledge'),
|
||
'ai_usage' => $request->has('ai_usage'),
|
||
'message' => $request->message,
|
||
'status' => 'pending',
|
||
]);
|
||
|
||
if ($request->ajax()) {
|
||
return response()->json([
|
||
'success' => true,
|
||
'message' => __('career.success_message')
|
||
]);
|
||
}
|
||
|
||
return redirect()->back()->with('success', __('career.success_message'));
|
||
}
|
||
}
|