diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index baad6d2..27111ff 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -81,7 +81,7 @@ public function store(Request $request) 'no_telp' => $request->no_telp, 'tgl_booking' => $request->tgl_booking, 'deskripsi_tambahan' => $request->deskripsi_tambahan, - 'kode_unik' => $kode_unik + 'kode_unik' => $kode_unik, ]); return response()->json([ diff --git a/app/Http/Controllers/CekStatusController.php b/app/Http/Controllers/CekStatusController.php index 3871ac6..c80a2b9 100644 --- a/app/Http/Controllers/CekStatusController.php +++ b/app/Http/Controllers/CekStatusController.php @@ -38,6 +38,11 @@ public function show(string $id) { $data = BookingModel::where('kode_unik', $id)->first(); if($data != null) { + if($data->status_tes == '1' && $data->unix_expired_time < time()) { + $data->update([ + 'status_tes' => '0' + ]); + } return response()->json([ 'status' => true, 'msg' => 'Data ditemukan (' . $id . ')', @@ -46,6 +51,7 @@ public function show(string $id) 'nama_lengkap' => $data->nama_lengkap, 'kode_unik' => $data->kode_unik, 'tgl_booking' => $data->tgl_booking, + 'jam_booking' => date('H:i:s', strtotime($data->created_at)), 'deskripsi_tambahan' => $data->deskripsi_tambahan, ]); } else { diff --git a/app/Models/BookingModel.php b/app/Models/BookingModel.php index 5856df0..1518a41 100644 --- a/app/Models/BookingModel.php +++ b/app/Models/BookingModel.php @@ -22,7 +22,8 @@ class BookingModel extends Model 'kode_unik', 'tgl_booking', 'deskripsi_tambahan', - 'status_tes' + 'status_tes', + 'unix_expired_time' ]; protected $casts = [ @@ -38,7 +39,11 @@ protected static function boot() } if(empty($model->status_tes)) { - $model->status_tes = '0'; + $model->status_tes = '1'; + } + + if(empty($model->unix_expired_time)) { + $model->unix_expired_time = (string) (time() + 86400); // Set expiration time to 24 hour from now } }); } diff --git a/database/migrations/2026_05_06_190239_add_column_in_booking_table.php b/database/migrations/2026_05_06_190239_add_column_in_booking_table.php new file mode 100644 index 0000000..0eb4572 --- /dev/null +++ b/database/migrations/2026_05_06_190239_add_column_in_booking_table.php @@ -0,0 +1,28 @@ +char('unix_expired_time', 20)->after('kode_unik'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('booking', function (Blueprint $table) { + $table->dropColumn('unix_expired_time'); + }); + } +}; diff --git a/resources/views/user/pages/cek_status/index.blade.php b/resources/views/user/pages/cek_status/index.blade.php index c1f66b7..43c4e35 100644 --- a/resources/views/user/pages/cek_status/index.blade.php +++ b/resources/views/user/pages/cek_status/index.blade.php @@ -58,7 +58,7 @@ @@ -137,28 +137,29 @@ function searchUserStatus() { xhttp.onreadystatechange = function() { if(this.readyState == 4 && this.status == 200) { let response = JSON.parse(this.responseText); - let status_dict = ['Belum dikonfirmasi (cek email anda)', 'Sudah dikonfirmasi, belum melakukan/menyelesaikan tes', 'Sudah melakukan tes']; + let status_dict = ['Sesi anda dinonaktifkan karena telah kedaluwarsa', 'Belum melakukan/menyelesaikan tes', 'Sudah melakukan tes']; if(response.status) { $('#result_data').show(); $('#nama_lengkap').html(response.nama_lengkap); $('#kode_unik').html(response.kode_unik); $('#tgl_booking').html(response.tgl_booking); + $('#jam_booking').html(response.jam_booking + " (waktu sistem)"); $('#deskripsi').html(response.deskripsi_tambahan); $('#status').html(status_dict[response.status_data]); Swal.close(); if(response.status_data == 0) { $('#alert_status').removeClass(); - $('#alert_status').addClass('alert alert-primary'); - $('#alert_status').html('Kamu belum dikonfirmasi dengan psikolog, cek waktu konsultasi pada email anda untuk melakukan aktivasi!'); + $('#alert_status').addClass('alert alert-warning'); + $('#alert_status').html('Session kamu dinonaktifkan!'); } else if(response.status_data == 1) { $('#alert_status').removeClass(); $('#alert_status').addClass('alert alert-info'); - $('#alert_status').html('Kamu sudah dikonfirmasi oleh psikolog!'); + $('#alert_status').html('Kamu bisa memulai tes sekarang!'); let test_session = getTestSession(response.id_booking); $('#result_test').show(); - $('#result_test_title').html('Kamu sudah dikonfirmasi oleh psikolog! Kalau kamu sudah siap menjalankan tes, klik tombol di bawah untuk mulai tes kecemasan dari sistem kami!'); + $('#result_test_title').html('Kalau kamu sudah siap menjalankan tes, klik tombol di bawah untuk mulai tes kecemasan dari sistem kami!'); if(test_session.status) { if(test_session.status_session == 0) { $('#id_booking_input').val(response.id_booking); @@ -183,7 +184,7 @@ function searchUserStatus() { } else if(!test_session.status) { $('#id_booking_input').val(response.id_booking); $('#result_test').show(); - $('#result_test_title').html('Kamu sudah dikonfirmasi oleh psikolog! Kalau kamu sudah siap menjalankan tes, klik tombol di bawah untuk mulai tes kecemasan dari sistem kami!'); + $('#result_test_title').html('Kalau kamu sudah siap menjalankan tes, klik tombol di bawah untuk mulai tes kecemasan dari sistem kami!'); $('#result_test_status').html('Belum Dimulai'); $('#result_test_status').removeClass();