match_making/app/Http/Controllers/PreferencesController.php
2025-01-02 09:09:28 +07:00

151 lines
5.7 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Preference;
use App\Models\UserPreference;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class PreferencesController extends Controller
{
// Menampilkan form preferences
public function showForm()
{
return view('preferences.form');
}
// Menyimpan preferensi
// public function savePreferences(Request $request)
// {
// $request->validate([
// 'preferences' => 'required|array', // Memastikan preferences adalah array
// ]);
// // Simpan preferensi sebagai JSON
// UserPreference::updateOrCreate(
// ['user_id' => auth()->id()],
// ['preferences' => json_encode($request->preferences)]
// );
// return response()->json(['message' => 'Preferences saved successfully']);
// }
// Mendapatkan preferensi pengguna yang telah disimpan
// public function getPreferences()
// {
// $preferences = UserPreference::where('user_id', auth()->id())->first();
// return response()->json($preferences);
// }
public function storeOrUpdatePreferences(Request $request)
{
// Dapatkan user yang sedang login
$user = Auth::user();
// Validasi input
$request->validate([
'filters.*' => 'string|distinct',
'bidang_sub_sektor_ekonomi_kreatif' => 'array|nullable',
'kategori' => 'array|nullable',
'batas_terima_tawaran' => 'date|nullable',
'range_min' => 'numeric|nullable',
'range_max' => 'numeric|nullable',
'status' => 'array|nullable',
'audiens' => 'string|nullable',
'benefit' => 'string|nullable',
'durasi_min' => 'integer|nullable',
'durasi_max' => 'integer|nullable',
'lokasi' => 'string|nullable',
'metodologi' => 'string|nullable',
'rincian_kebutuhan' => 'string|nullable',
'penerima_manfaat' => 'string|nullable',
]);
$batasTerimaTawaran = $request->batas_terima_tawaran
? date('Y-m-d', strtotime($request->batas_terima_tawaran))
: null;
// Buat atau perbarui preferences
$preferences = Preference::updateOrCreate(
['user_id' => $user->id], // Kondisi pencarian berdasarkan user_id
[
'filters' => json_encode($request->filters),
'bidang_sub_sektor_ekonomi_kreatif' => json_encode($request->bidang_sub_sektor_ekonomi_kreatif),
'kategori' => json_encode($request->kategori),
'batas_terima_tawaran' => $batasTerimaTawaran,
'range_min' => $request->range_min,
'range_max' => $request->range_max,
'status' => json_encode($request->status),
'audiens' => $request->audiens,
'benefit' => $request->benefit,
'durasi_min' => $request->durasi_min,
'durasi_max' => $request->durasi_max,
'lokasi' => $request->lokasi,
'metodologi' => $request->metodologi,
'rincian_kebutuhan' => $request->rincian_kebutuhan,
'penerima_manfaat' => $request->penerima_manfaat,
]
);
// Kembali ke halaman sebelumnya dengan pesan sukses
return redirect()->back()->with('success', 'Preferences updated successfully.');
}
// public function storeOrUpdatePreferences(Request $request)
// {
// // Dapatkan user yang sedang login
// $user = Auth::user();
// // Validasi input
// $request->validate([
// 'filters.*' => 'string|distinct',
// 'bidang_sub_sektor_ekonomi_kreatif' => 'array|nullable',
// 'kategori' => 'array|nullable',
// 'batas_terima_tawaran' => 'date|nullable',
// 'range_min' => 'numeric|nullable',
// 'range_max' => 'numeric|nullable',
// 'status' => 'array|nullable',
// 'audiens' => 'string|nullable',
// 'benefit' => 'string|nullable',
// 'durasi_min' => 'integer|nullable',
// 'durasi_max' => 'integer|nullable',
// 'lokasi' => 'string|nullable',
// 'metodologi' => 'string|nullable',
// 'rincian_kebutuhan' => 'string|nullable',
// 'penerima_manfaat' => 'string|nullable',
// ]);
// // Buat atau perbarui preferences
// $preferences = Preference::updateOrCreate(
// ['user_id' => $user->id], // Kondisi pencarian berdasarkan user_id
// [
// 'filters' => json_encode($request->filters), // Menyimpan filters sebagai JSON
// 'bidang_sub_sektor_ekonomi_kreatif' => json_encode($request->bidang_sub_sektor_ekonomi_kreatif),
// 'kategori' => json_encode($request->kategori),
// 'batas_terima_tawaran' => $request->batas_terima_tawaran,
// 'range_min' => $request->range_min,
// 'range_max' => $request->range_max,
// 'status' => json_encode($request->status),
// 'audiens' => $request->audiens,
// 'benefit' => $request->benefit,
// 'durasi_min' => $request->durasi_min,
// 'durasi_max' => $request->durasi_max,
// 'lokasi' => $request->lokasi,
// 'metodologi' => $request->metodologi,
// 'rincian_kebutuhan' => $request->rincian_kebutuhan,
// 'penerima_manfaat' => $request->penerima_manfaat,
// ]
// );
// // Kembali ke halaman sebelumnya dengan pesan sukses
// return redirect()->back()->with('success', 'Preferences berhasil diperbarui!');
// }
}