<?php

namespace Database\Seeders;

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

class QuestionSeeder extends Seeder
{
    public function run()
    {
        $questions = [
            ['code' => 'U1', 'element' => 'U1', 'question' => 'Bagaimana pendapat Saudara tentang kesesuaian persyaratan pelayanan dengan jenis pelayanannya?', 'order' => 1],
            ['code' => 'U2', 'element' => 'U2', 'question' => 'Bagaimana pemahaman Saudara tentang kemudahan prosedur pelayanan di unit ini?', 'order' => 2],
            ['code' => 'U3', 'element' => 'U3', 'question' => 'Bagaimana pendapat Saudara tentang kecepatan waktu dalam memberikan pelayanan?', 'order' => 3],
            ['code' => 'U4', 'element' => 'U4', 'question' => 'Bagaimana pendapat Saudara tentang kewajaran biaya/tarif dalam pelayanan?', 'order' => 4],
            ['code' => 'U5', 'element' => 'U5', 'question' => 'Bagaimana pendapat Saudara tentang kesesuaian produk pelayanan antara yang tercantum dalam standar pelayanan dengan hasil yang diberikan?', 'order' => 5],
            ['code' => 'U6', 'element' => 'U6', 'question' => 'Bagaimana pendapat Saudara tentang kompetensi/kemampuan petugas dalam pelayanan?', 'order' => 6],
            ['code' => 'U7', 'element' => 'U7', 'question' => 'Bagaimana pendapat Saudara tentang perilaku petugas dalam pelayanan terkait kesopanan dan keramahan?', 'order' => 7],
            ['code' => 'U8', 'element' => 'U8', 'question' => 'Bagaimana pendapat Saudara tentang penanganan pengaduan di unit pelayanan?', 'order' => 8],
            ['code' => 'U9', 'element' => 'U9', 'question' => 'Bagaimana pendapat Saudara tentang ketersediaan dan kondisi sarana dan prasarana?', 'order' => 9],
        ];

        $defaultAnswerOptions = [
            ['label' => 'Tidak Baik', 'score' => 1, 'weight' => 1.00, 'order' => 1],
            ['label' => 'Kurang Baik', 'score' => 2, 'weight' => 2.00, 'order' => 2],
            ['label' => 'Baik', 'score' => 3, 'weight' => 3.00, 'order' => 3],
            ['label' => 'Sangat Baik', 'score' => 4, 'weight' => 4.00, 'order' => 4],
        ];

        foreach ($questions as $questionData) {
            // Use updateOrCreate to avoid duplicates
            $question = Question::updateOrCreate(
                ['code' => $questionData['code']],
                $questionData
            );
            
            // Create default answer options for each question (only if they don't exist)
            foreach ($defaultAnswerOptions as $optionData) {
                AnswerOption::updateOrCreate(
                    [
                        'question_id' => $question->id,
                        'label' => $optionData['label'],
                    ],
                    array_merge($optionData, [
                        'question_id' => $question->id,
                        'text' => $optionData['label'], // Keep for backward compatibility
                    ])
                );
            }
        }
    }
}

