<?php

namespace App\Http\Controllers;

use App\Models\DataSoalModel;
use App\Models\DetailTestModel;
use App\Models\TestSessionsModel;
use Illuminate\Http\Request;

class FinishUjianController extends Controller
{

    public function getAllAnswer(Request $request) {
        $data_session = TestSessionsModel::where('id_test_sessions', $request->id_test_sessions)->first();
        if($data_session != null) {
            if($data_session->status_session != '1') {
                return response()->json([
                    'status' => false,
                    'message' => 'Data sesi tes belum dimulai atau telah usai. Silahkan cek status dengan kode untuk informasi lebih lanjut.'
                ]);
            } else if($data_session->status_session == '1') {
                $detail_test = DetailTestModel::where('id_test_sessions', $request->id_test_sessions)->get();
                $data_ujian = [];
                foreach($detail_test as $detail) {
                    $data_soal = DataSoalModel::where('id_soal', $detail->id_soal)->first();
                    $data_jawaban = $detail->jawaban;
                    if($data_jawaban == 'a') {
                        $data_jawaban = $data_soal->jawaban_a;
                    } else if($data_jawaban == 'b') {
                        $data_jawaban = $data_soal->jawaban_b;
                    } else if($data_jawaban == 'c') {
                        $data_jawaban = $data_soal->jawaban_c;
                    } else if($data_jawaban == 'd') {
                        $data_jawaban = $data_soal->jawaban_d;
                    } else if($data_jawaban == 'e') {
                        $data_jawaban = $data_soal->jawaban_e;
                    } else {
                        $data_jawaban = 'Tidak menjawab';
                    }
                    $data_ujian[] = [
                        'id_soal' => $detail->id_soal,
                        'jawaban' => $data_jawaban,
                        'jawaban_key' => $detail->jawaban,
                        'soal' => $data_soal->pertanyaan
                    ];
                }
                return response()->json([
                    'status' => true,
                    'data' => $data_ujian
                ]);
            }
        } else {
            return response()->json([
                'status' => false,
                'message' => 'Data sesi tes tidak ditemukan.'
            ]);
        }
    }

    /**
     * Display a listing of the resource.
     */
    public function index(Request $request)
    {
        $id_session = null;
        if(session('id_test_sessions') != null) {
            $id_session = session('id_test_sessions');
        } else if($request->id_test_sessions != null) {
            $id_session = $request->id_test_sessions;
        } else {
            return redirect()->route('cek-status.index')->with('error', 'Data sesi tes tidak ditemukan. Silakan mulai tes terlebih dahulu.');
        }

        $data_session = TestSessionsModel::where('id_test_sessions', $id_session)->first();
        if($data_session != null) {
            if($data_session->status_session != '1') {
                return redirect()->route('cek-status.index')->with('error', 'Data sesi tes belum dimulai atau telah usai. Silahkan cek status dengan kode untuk informasi lebih lanjut.');
            } else if($data_session->status_session == '1') {
                // $data_session->update([
                //     'status_session' => '2',
                //     'is_active' => '0'
                // ]);
                return view('user.pages.finish_ujian.index', compact('id_session'));
            }
        } else {
            return redirect()->route('cek-status.index')->with('error', 'Data sesi tes tidak ditemukan.');
        }
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     */
    public function show(string $id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(string $id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, string $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(string $id)
    {
        //
    }
}
