<?php

namespace Database\Seeders;

use App\Models\Question;
use App\Models\Lesson;
use Illuminate\Database\Seeder;

class QuestionsSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        // Pastikan kita memiliki setidaknya 1 pelajaran dan 1 kelas
        if (Lesson::count() == 0) {
            Lesson::insert([
                ['title' => 'Matematika'],
                ['title' => 'Bahasa Indonesia'],
                ['title' => 'Ilmu Pengetahuan Alam'],
                ['title' => 'Sejarah'],
            ]);
        }

        $lessons = Lesson::all();

        // Truncate tabel jika ingin melakukan seed dari awal (Optional, tapi kita bisa hapus yang ada atau tambah baru)
        // Question::truncate();

        foreach ($lessons as $lesson) {
                $pg = [];
                $pg_kompleks = [];
                $menjodohkan = [];
                $isian = [];
                $uraian = [];

                if ($lesson->title == 'Matematika') {
                    $pg = [
                        'q' => '<p>Berapakah hasil dari operasi hitung 5 + 3 &times; 2?</p>',
                        'opts' => ['16', '11', '10', '15', '12'],
                        'ans' => ['2']
                    ];
                    $pg_kompleks = [
                        'q' => '<p>Dari daftar angka berikut, manakah yang termasuk bilangan prima? (Jawaban bisa lebih dari satu)</p>',
                        'opts' => ['2', '9', '13', '15', '17'],
                        'ans' => ['1', '3', '5']
                    ];
                    $menjodohkan = [
                        'q' => '<p>Jodohkanlah bangun datar di bawah ini dengan rumus luas yang sesuai.</p>',
                        'ans' => [
                            ['premis' => 'Persegi', 'respon' => 'Sisi &times; Sisi'],
                            ['premis' => 'Segitiga', 'respon' => '1/2 &times; Alas &times; Tinggi'],
                            ['premis' => 'Lingkaran', 'respon' => '&pi; &times; Jari-jari&sup2;'],
                            ['premis' => 'Persegi Panjang', 'respon' => 'Panjang &times; Lebar']
                        ]
                    ];
                    $isian = [
                        'q' => '<p>Berapakah nilai akar kuadrat dari 144?</p>',
                        'ans' => ['12']
                    ];
                    $uraian = [
                        'q' => '<p>Jelaskan langkah-langkah dasar menyelesaikan sistem persamaan linear dua variabel (SPLDV) menggunakan metode substitusi!</p>',
                        'ans' => ['Siswa diharapkan menjawab dengan menuliskan tahapan isolasi salah satu variabel, dan mensubstitusikannya ke persamaan lain.']
                    ];
                } elseif ($lesson->title == 'Bahasa Indonesia') {
                    $pg = [
                        'q' => '<p>Cermati kalimat berikut: <em>Budi bagaikan kancil di kelasnya.</em><br> Majas yang digunakan pada kalimat tersebut adalah...</p>',
                        'opts' => ['Metafora', 'Personifikasi', 'Hiperbola', 'Simile', 'Litotes'],
                        'ans' => ['4']
                    ];
                    $pg_kompleks = [
                        'q' => '<p>Manakah dari kalimat berikut yang merupakan contoh kalimat pasif? (Jawaban bisa lebih dari satu)</p>',
                        'opts' => ['Ibu memasak nasi di dapur.', 'Buku cerita itu dibaca oleh rani.', 'Kucing mengejar tikus.', 'Kaca jendela dipecahkan oleh pencuri.', 'Bola ditendang dengan kuat.'],
                        'ans' => ['2', '4', '5']
                    ];
                    $menjodohkan = [
                        'q' => '<p>Pasangkan jenis majas berikut dengan contoh yang paling tepat.</p>',
                        'ans' => [
                            ['premis' => 'Hiperbola', 'respon' => 'Suaranya menggelegar membelah angkasa'],
                            ['premis' => 'Personifikasi', 'respon' => 'Angin menyapa daun-daun pepohonan'],
                            ['premis' => 'Metafora', 'respon' => 'Ia adalah tulang punggung keluarga'],
                            ['premis' => 'Ironi', 'respon' => 'Pintar sekali kau, ujian begini saja dapat nol']
                        ]
                    ];
                    $isian = [
                        'q' => '<p>Seseorang yang memandu berjalannya sebuah acara sering disebut dengan istilah <em>Master of Ceremony</em> atau dalam bahasa Indonesia dikenal dengan...</p>',
                        'ans' => ['Pewara', 'Pembawa acara']
                    ];
                    $uraian = [
                        'q' => '<p>Buatlah satu paragraf argumentasi singkat (minimal 3 kalimat) yang berisi tentang pentingnya kebiasaan membaca buku di era digital!</p>',
                        'ans' => ['Siswa diharapkan membuat kerangka gagasan utama yang persuasif diikuti 2 kalimat pendukung terkait literasi di era informasi.']
                    ];
                } elseif ($lesson->title == 'Ilmu Pengetahuan Alam') {
                    $pg = [
                        'q' => '<p>Proses fotosintesis pada tumbuhan hijau menghasilkan gas yang sangat dibutuhkan oleh manusia untuk bernapas. Gas apakah yang dimaksud?</p>',
                        'opts' => ['Karbon dioksida', 'Oksigen', 'Nitrogen', 'Hidrogen', 'Helium'],
                        'ans' => ['2']
                    ];
                    $pg_kompleks = [
                        'q' => '<p>Di antara hewan-hewan berikut ini, manakah yang termasuk dalam kelompok hewan mamalia? (Pilih semua yang benar)</p>',
                        'opts' => ['Paus', 'Hiu', 'Kelelawar', 'Ular', 'Kucing'],
                        'ans' => ['1', '3', '5']
                    ];
                    $menjodohkan = [
                        'q' => '<p>Jodohkanlah bagian organ tubuh berikut dengan fungsi utamanya dalam sistem pencernaan.</p>',
                        'ans' => [
                            ['premis' => 'Lambung', 'respon' => 'Mencerna makanan secara kimiawi'],
                            ['premis' => 'Usus Halus', 'respon' => 'Menyerap sari makanan'],
                            ['premis' => 'Usus Besar', 'respon' => 'Menyerap air dan membentuk feses'],
                            ['premis' => 'Kerongkongan', 'respon' => 'Mendorong makanan dengan gerak peristaltik']
                        ]
                    ];
                    $isian = [
                        'q' => '<p>Zat hijau daun yang sangat penting untuk membantu proses fotosintesis pada tumbuhan disebut...</p>',
                        'ans' => ['Klorofil']
                    ];
                    $uraian = [
                        'q' => '<p>Jelaskan secara singkat urutan terjadinya siklus air hidrologi mulai dari penguapan (evaporasi)!</p>',
                        'ans' => ['Siswa harus dapat menjelaskan Evaporasi, Kondensasi, Presipitasi (Hujan), dan Infiltrasi.']
                    ];
                } else {
                    // Default untuk Sejarah atau mapel lainnya
                    $pg = [
                        'q' => '<p>Pada tanggal berapakah Proklamasi Kemerdekaan Republik Indonesia dibacakan?</p>',
                        'opts' => ['16 Agustus 1945', '17 Agustus 1945', '18 Agustus 1945', '20 Mei 1908', '28 Oktober 1928'],
                        'ans' => ['2']
                    ];
                    $pg_kompleks = [
                        'q' => '<p>Siapakah di bawah ini yang terlibat aktif dalam perumusan naskah teks Proklamasi? (Jawaban lebih dari satu)</p>',
                        'opts' => ['Soekarno', 'Moh. Hatta', 'Ahmad Soebardjo', 'Sutan Sjahrir', 'Cut Nyak Dien'],
                        'ans' => ['1', '2', '3']
                    ];
                    $menjodohkan = [
                        'q' => '<p>Jodohkan tokoh pahlawan kemerdekaan dengan perannya.</p>',
                        'ans' => [
                            ['premis' => 'Soekarno', 'respon' => 'Pembaca teks Proklamasi'],
                            ['premis' => 'Sayuti Melik', 'respon' => 'Pengetik naskah Proklamasi'],
                            ['premis' => 'Fatmawati', 'respon' => 'Penjahit Bendera Pusaka'],
                            ['premis' => 'WR Supratman', 'respon' => 'Pencipta Lagu Indonesia Raya']
                        ]
                    ];
                    $isian = [
                        'q' => '<p>Nama lapangan yang digunakan sebagai lokasi Proklamasi Kemerdekaan Indonesia awalnya adalah Lapangan Ikada, yang berada di jalan Pegangsaan Timur No...</p>',
                        'ans' => ['56']
                    ];
                    $uraian = [
                        'q' => '<p>Jelaskan mengenai Latar Belakang Terjadinya Peristiwa Rengasdengklok dengan singkat dan jelas!</p>',
                        'ans' => ['Siswa menyebutkan ketidaksepakatan golongan pemuda dan golongan tua tentang waktu pelaksanaan proklamasi karena kekosongan kekuasaan.']
                    ];
                }

                // 1. Tipe: Pilihan Ganda
                Question::create([
                    'lesson_id' => $lesson->id,
                    'type' => 'pg',
                    'difficulty' => 'sedang',
                    'kompetensi' => 'Pengetahuan Dasar',
                    'question' => $pg['q'],
                    'option_1' => $pg['opts'][0],
                    'option_2' => $pg['opts'][1],
                    'option_3' => $pg['opts'][2],
                    'option_4' => $pg['opts'][3],
                    'option_5' => $pg['opts'][4],
                    'answer' => $pg['ans'],
                ]);

                // 2. Tipe: PG Kompleks
                Question::create([
                    'lesson_id' => $lesson->id,
                    'type' => 'pg_kompleks',
                    'difficulty' => 'sulit',
                    'kompetensi' => 'Pemahaman Lanjut',
                    'question' => $pg_kompleks['q'],
                    'option_1' => $pg_kompleks['opts'][0],
                    'option_2' => $pg_kompleks['opts'][1],
                    'option_3' => $pg_kompleks['opts'][2],
                    'option_4' => $pg_kompleks['opts'][3],
                    'option_5' => $pg_kompleks['opts'][4],
                    'answer' => $pg_kompleks['ans'],
                ]);

                // 3. Tipe: Menjodohkan
                Question::create([
                    'lesson_id' => $lesson->id,
                    'type' => 'menjodohkan',
                    'difficulty' => 'mudah',
                    'kompetensi' => 'Asosiasi Konsep',
                    'question' => $menjodohkan['q'],
                    'option_1' => '',
                    'option_2' => '',
                    'option_3' => '',
                    'option_4' => '',
                    'option_5' => '',
                    'answer' => $menjodohkan['ans'],
                ]);

                // 4. Tipe: Isian
                Question::create([
                    'lesson_id' => $lesson->id,
                    'type' => 'isian',
                    'difficulty' => 'sedang',
                    'kompetensi' => 'Recall Daya Ingat',
                    'question' => $isian['q'],
                    'option_1' => '',
                    'option_2' => '',
                    'option_3' => '',
                    'option_4' => '',
                    'option_5' => '',
                    'answer' => $isian['ans'],
                ]);

                // 5. Tipe: Uraian
                Question::create([
                    'lesson_id' => $lesson->id,
                    'type' => 'uraian',
                    'difficulty' => 'sulit',
                    'kompetensi' => 'Analisa Sistematis',
                    'question' => $uraian['q'],
                    'option_1' => '',
                    'option_2' => '',
                    'option_3' => '',
                    'option_4' => '',
                    'option_5' => '',
                    'answer' => $uraian['ans'],
                ]);
        }
    }
}
