<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

// ══════════════════════════════════════════════════════════════════
//  InPractice — Question Bank Seeder
//
//  Seeds platform-defined sections (Finance, Marketing, Sales,
//  General) and bilingual question templates.
//
//  Members cannot create sections — they pick from these.
//  usage_count starts at 0, grows as questions are added to surveys.
// ══════════════════════════════════════════════════════════════════

class QuestionBankSeeder extends Seeder
{
    public function run(): void
    {
        // ── Sections ───────────────────────────────────────────
        $sections = [
            ['name_en' => 'Finance',   'name_ar' => 'المالية',      'color' => 'teal',  'sort_order' => 1],
            ['name_en' => 'Marketing', 'name_ar' => 'التسويق',      'color' => 'blue',  'sort_order' => 2],
            ['name_en' => 'Sales',     'name_ar' => 'المبيعات',     'color' => 'coral', 'sort_order' => 3],
            ['name_en' => 'General',   'name_ar' => 'عام',          'color' => 'gray',  'sort_order' => 4],
        ];

        foreach ($sections as $section) {
            DB::table('question_bank_sections')->insertOrIgnore([
                ...$section,
                'created_at' => now(),
                'updated_at' => now(),
            ]);
        }

        $ids = DB::table('question_bank_sections')->orderBy('sort_order')->pluck('id', 'name_en');
        $finance   = $ids['Finance'];
        $marketing = $ids['Marketing'];
        $sales     = $ids['Sales'];
        $general   = $ids['General'];

        // ── Finance Questions ──────────────────────────────────
        $financeItems = [
            [
                'question_en' => 'How would you rate the clarity of our financial reporting?',
                'question_ar' => 'كيف تقيم وضوح تقاريرنا المالية؟',
                'type'        => 'rating',
                'rating_min'  => 1,
                'rating_max'  => 5,
            ],
            [
                'question_en' => 'How satisfied are you with our payment terms?',
                'question_ar' => 'ما مدى رضاك عن شروط الدفع لدينا؟',
                'type'        => 'rating',
                'rating_min'  => 1,
                'rating_max'  => 5,
            ],
            [
                'question_en' => 'How often do you review your departmental budget?',
                'question_ar' => 'كم مرة تراجع ميزانية قسمك؟',
                'type'        => 'multiple_choice',
                'options_en'  => json_encode(['Weekly', 'Monthly', 'Quarterly', 'Annually']),
                'options_ar'  => json_encode(['أسبوعياً', 'شهرياً', 'ربع سنوي', 'سنوياً']),
            ],
            [
                'question_en' => 'Does your company have a documented cash flow forecast?',
                'question_ar' => 'هل تمتلك شركتك توقعاً موثقاً للتدفق النقدي؟',
                'type'        => 'yes_no',
            ],
            [
                'question_en' => 'What is your biggest financial challenge right now?',
                'question_ar' => 'ما أكبر تحدٍ مالي تواجهه الآن؟',
                'type'        => 'text',
            ],
            [
                'question_en' => 'Which financial tools does your team currently use?',
                'question_ar' => 'ما الأدوات المالية التي يستخدمها فريقك حالياً؟',
                'type'        => 'multi_select',
                'options_en'  => json_encode(['Excel', 'SAP', 'QuickBooks', 'Oracle', 'Zoho Books', 'Other']),
                'options_ar'  => json_encode(['Excel', 'SAP', 'QuickBooks', 'Oracle', 'Zoho Books', 'أخرى']),
            ],
            [
                'question_en' => 'How would you rate your company current financial health?',
                'question_ar' => 'كيف تقيم الوضع المالي الحالي لشركتك؟',
                'type'        => 'rating',
                'rating_min'  => 1,
                'rating_max'  => 10,
            ],
        ];

        // ── Marketing Questions ────────────────────────────────
        $marketingItems = [
            [
                'question_en' => 'How did you first hear about us?',
                'question_ar' => 'كيف سمعت عنا لأول مرة؟',
                'type'        => 'multiple_choice',
                'options_en'  => json_encode(['Social Media', 'Word of Mouth', 'Search Engine', 'Event', 'Other']),
                'options_ar'  => json_encode(['وسائل التواصل الاجتماعي', 'التوصيات', 'محرك البحث', 'فعالية', 'أخرى']),
            ],
            [
                'question_en' => 'Which social media platforms do you use for professional purposes?',
                'question_ar' => 'ما منصات التواصل الاجتماعي التي تستخدمها لأغراض مهنية؟',
                'type'        => 'multi_select',
                'options_en'  => json_encode(['LinkedIn', 'X (Twitter)', 'Instagram', 'Facebook', 'YouTube', 'TikTok']),
                'options_ar'  => json_encode(['LinkedIn', 'X (تويتر)', 'إنستغرام', 'فيسبوك', 'يوتيوب', 'تيك توك']),
            ],
            [
                'question_en' => 'How likely are you to recommend us to a colleague?',
                'question_ar' => 'ما احتمال أن توصي بنا لزميل؟',
                'type'        => 'rating',
                'rating_min'  => 0,
                'rating_max'  => 10,
                'placeholder_en' => '0 = Not at all, 10 = Definitely',
                'placeholder_ar' => '0 = بالتأكيد لا، 10 = بالتأكيد نعم',
            ],
            [
                'question_en' => 'What type of content do you find most valuable?',
                'question_ar' => 'ما نوع المحتوى الذي تجده الأكثر قيمة؟',
                'type'        => 'multiple_choice',
                'options_en'  => json_encode(['Case Studies', 'How-to Guides', 'Industry Reports', 'Webinars', 'Infographics']),
                'options_ar'  => json_encode(['دراسات الحالة', 'أدلة عملية', 'تقارير الصناعة', 'ندوات إلكترونية', 'إنفوغرافيك']),
            ],
            [
                'question_en' => 'What is your marketing budget range for this year?',
                'question_ar' => 'ما نطاق ميزانية التسويق لديك هذا العام؟',
                'type'        => 'multiple_choice',
                'options_en'  => json_encode(['Under 50K EGP', '50K–200K EGP', '200K–500K EGP', 'Over 500K EGP']),
                'options_ar'  => json_encode(['أقل من 50 ألف', '50–200 ألف', '200–500 ألف', 'أكثر من 500 ألف']),
            ],
            [
                'question_en' => 'How would you describe our brand positioning?',
                'question_ar' => 'كيف تصف تموضع علامتنا التجارية؟',
                'type'        => 'text',
            ],
        ];

        // ── Sales Questions ────────────────────────────────────
        $salesItems = [
            [
                'question_en' => 'What is your typical sales cycle length?',
                'question_ar' => 'ما المدة النموذجية لدورة مبيعاتك؟',
                'type'        => 'multiple_choice',
                'options_en'  => json_encode(['Less than 1 week', '1–4 weeks', '1–3 months', 'Over 3 months']),
                'options_ar'  => json_encode(['أقل من أسبوع', 'أسبوع–شهر', '1–3 أشهر', 'أكثر من 3 أشهر']),
            ],
            [
                'question_en' => 'How satisfied are you with our product or service?',
                'question_ar' => 'ما مدى رضاك عن منتجنا أو خدمتنا؟',
                'type'        => 'rating',
                'rating_min'  => 1,
                'rating_max'  => 5,
            ],
            [
                'question_en' => 'What was the main reason you chose us over competitors?',
                'question_ar' => 'ما السبب الرئيسي الذي جعلك تختارنا على المنافسين؟',
                'type'        => 'multiple_choice',
                'options_en'  => json_encode(['Price', 'Quality', 'Reputation', 'Relationship', 'Features', 'Other']),
                'options_ar'  => json_encode(['السعر', 'الجودة', 'السمعة', 'العلاقة', 'المميزات', 'أخرى']),
            ],
            [
                'question_en' => 'How would you rate our sales team responsiveness?',
                'question_ar' => 'كيف تقيم سرعة استجابة فريق المبيعات لدينا؟',
                'type'        => 'rating',
                'rating_min'  => 1,
                'rating_max'  => 5,
            ],
            [
                'question_en' => 'Would you purchase from us again?',
                'question_ar' => 'هل ستشتري منا مرة أخرى؟',
                'type'        => 'yes_no',
            ],
            [
                'question_en' => 'What could we improve in our sales process?',
                'question_ar' => 'ما الذي يمكننا تحسينه في عملية المبيعات؟',
                'type'        => 'text',
            ],
        ];

        // ── General Questions ──────────────────────────────────
        $generalItems = [
            [
                'question_en' => 'How long have you been working in your current field?',
                'question_ar' => 'كم عدد سنوات خبرتك في مجالك الحالي؟',
                'type'        => 'multiple_choice',
                'options_en'  => json_encode(['Less than 1 year', '1–3 years', '3–7 years', '7–15 years', 'Over 15 years']),
                'options_ar'  => json_encode(['أقل من سنة', '1–3 سنوات', '3–7 سنوات', '7–15 سنة', 'أكثر من 15 سنة']),
            ],
            [
                'question_en' => 'How would you rate today overall experience?',
                'question_ar' => 'كيف تقيم تجربتك اليوم بشكل عام؟',
                'type'        => 'rating',
                'rating_min'  => 1,
                'rating_max'  => 5,
            ],
            [
                'question_en' => 'What industry do you work in?',
                'question_ar' => 'في أي قطاع تعمل؟',
                'type'        => 'multiple_choice',
                'options_en'  => json_encode(['Manufacturing', 'Services', 'Retail', 'Healthcare', 'Education', 'Real Estate', 'Technology', 'Other']),
                'options_ar'  => json_encode(['تصنيع', 'خدمات', 'تجزئة', 'رعاية صحية', 'تعليم', 'عقارات', 'تكنولوجيا', 'أخرى']),
            ],
            [
                'question_en' => 'What is your current job level?',
                'question_ar' => 'ما مستواك الوظيفي الحالي؟',
                'type'        => 'multiple_choice',
                'options_en'  => json_encode(['Student / Intern', 'Junior', 'Mid-level', 'Senior', 'Manager', 'Director / C-level']),
                'options_ar'  => json_encode(['طالب / متدرب', 'مبتدئ', 'متوسط', 'متقدم', 'مدير', 'مدير تنفيذي']),
            ],
            [
                'question_en' => 'Do you have any additional comments or suggestions?',
                'question_ar' => 'هل لديك أي تعليقات أو اقتراحات إضافية؟',
                'type'        => 'text',
                'is_required' => false,
            ],
            [
                'question_en' => 'How did you find this event or session?',
                'question_ar' => 'كيف وجدت هذه الفعالية أو الجلسة؟',
                'type'        => 'rating',
                'rating_min'  => 1,
                'rating_max'  => 5,
            ],
        ];

        // ── Insert all items ───────────────────────────────────
        $allGroups = [
            $finance   => $financeItems,
            $marketing => $marketingItems,
            $sales     => $salesItems,
            $general   => $generalItems,
        ];

        foreach ($allGroups as $sectionId => $items) {
            foreach ($items as $item) {
                DB::table('question_bank_items')->insert([
                    'question_bank_section_id' => $sectionId,
                    'question_en'  => $item['question_en'],
                    'question_ar'  => $item['question_ar'] ?? null,
                    'type'         => $item['type'],
                    'options_en'   => $item['options_en'] ?? null,
                    'options_ar'   => $item['options_ar'] ?? null,
                    'rating_min'   => $item['rating_min'] ?? 1,
                    'rating_max'   => $item['rating_max'] ?? 5,
                    'is_required'  => $item['is_required'] ?? true,
                    'placeholder_en' => $item['placeholder_en'] ?? null,
                    'placeholder_ar' => $item['placeholder_ar'] ?? null,
                    'usage_count'  => 0,
                    'created_at'   => now(),
                    'updated_at'   => now(),
                ]);
            }
        }
    }
}
