<?php

namespace Database\Seeders;

use App\Models\KnowledgeBaseEntry;
use Illuminate\Database\Seeder;
use Illuminate\Support\Str;

class AiChatKeywordSeeder extends Seeder
{
    public function run(): void
    {
        if (!\Illuminate\Support\Facades\Schema::hasTable('knowledge_base')) {
            $this->command->warn('knowledge_base table does not exist. Run migrations first.');
            return;
        }

        $defaults = [
            [
                'title' => 'Greeting - Hi / Hello',
                'question_patterns' => 'hi,hello,hey,howdy,good morning,good afternoon,good evening,good day',
                'answer_bn' => 'হ্যালো! Ammar-এ আপনাকে স্বাগতম 😊 কিভাবে সাহায্য করতে পারি?',
                'answer_en' => 'Hello! Welcome to Ammar 😊 How can I help you today?',
                'priority' => 110,
            ],
            [
                'title' => 'Greeting - Islamic Salam',
                'question_patterns' => 'আসসালামু আলাইকুম,আস্সালামু আলাইকুম,আসালামু আলাইকুম,assalamu alaikum,assalamualaikum,salam,salaam',
                'answer_bn' => 'ওয়ালাইকুম আসসালাম। Ammar-এ আপনাকে স্বাগতম! কিভাবে সাহায্য করতে পারি?',
                'answer_en' => 'Wa Alaikum Assalam. Welcome to Ammar! How can I help you?',
                'priority' => 110,
            ],
            [
                'title' => 'Greeting - Bhai / Vai',
                'question_patterns' => 'ভাই,ভাইয়া,ভাই সাহেব,bhai,vai,দোস্ত,আপু,আপা',
                'answer_bn' => 'জি ভাই, বলুন। কিভাবে সাহায্য করতে পারি?',
                'answer_en' => 'Yes, how can I help you?',
                'priority' => 105,
            ],
            [
                'title' => 'Price Inquiry',
                'question_patterns' => 'দাম,মূল্য,দাম কত,মূল্য কত,কত টাকা,price,rate,cost,how much,কত',
                'answer_bn' => 'আপনি কোন পণ্যের দাম জানতে চাচ্ছেন? অনুগ্রহ করে পণ্যের নাম বা ছবি পাঠান, আমরা জানিয়ে দেব।',
                'answer_en' => 'Which product price are you looking for? Please send the product name or photo and we will get back to you.',
                'priority' => 100,
            ],
            [
                'title' => 'Order Placement',
                'question_patterns' => 'অর্ডার,অর্ডার করতে,অর্ডার দিতে,কিনতে চাই,buy,order,order korte,নিতে চাই,purchase',
                'answer_bn' => 'ধন্যবাদ! অর্ডার করতে পণ্যের নাম, পরিমাণ, আপনার নাম, মোবাইল নম্বর এবং ঠিকানা পাঠান। আমরা শীঘ্রই কনফার্ম করব।',
                'answer_en' => 'Thank you! To place an order, please send the product name, quantity, your name, phone number, and delivery address. We will confirm shortly.',
                'priority' => 100,
            ],
            [
                'title' => 'Delivery Inquiry',
                'question_patterns' => 'ডেলিভারি,ডেলিভারি চার্জ,কতদিন লাগবে,কবে পাব,delivery,shipping,কত দিন,how long',
                'answer_bn' => 'ঢাকার মধ্যে ১-২ কার্যদিবস এবং ঢাকার বাইরে ৩-৫ কার্যদিবসের মধ্যে ডেলিভারি দেওয়া হয়।',
                'answer_en' => 'Delivery within Dhaka takes 1-2 working days. Outside Dhaka takes 3-5 working days.',
                'priority' => 95,
            ],
            [
                'title' => 'Return & Refund',
                'question_patterns' => 'রিটার্ন,ফেরত,ফেরৎ,রিফান্ড,return,refund,ফেরত দিতে চাই',
                'answer_bn' => 'পণ্য পাওয়ার ৭ দিনের মধ্যে রিটার্ন করা যাবে, যদি পণ্যটি অক্ষত থাকে। বিস্তারিত জানতে আমাদের সাথে যোগাযোগ করুন।',
                'answer_en' => 'Returns are accepted within 7 days of receiving the product if undamaged. Contact us for details.',
                'priority' => 95,
            ],
            [
                'title' => 'Payment Methods',
                'question_patterns' => 'পেমেন্ট,বিকাশ,নগদ,রকেট,ক্যাশ,payment,bkash,nagad,rocket,cash on delivery,cod,কিভাবে পেমেন্ট',
                'answer_bn' => 'আমরা বিকাশ, নগদ, রকেট এবং ক্যাশ অন ডেলিভারি গ্রহণ করি।',
                'answer_en' => 'We accept bKash, Nagad, Rocket, and Cash on Delivery.',
                'priority' => 95,
            ],
            [
                'title' => 'Thank You',
                'question_patterns' => 'ধন্যবাদ,থ্যাংক ইউ,thanks,thank you,তহহানক,জাজাকাল্লাহ',
                'answer_bn' => 'আপনাকেও ধন্যবাদ! আর কোনো সাহায্য লাগলে জানাবেন 😊',
                'answer_en' => 'Thank you too! Feel free to ask if you need anything else 😊',
                'priority' => 90,
            ],
        ];

        foreach ($defaults as $data) {
            $normalizedKey = Str::slug(Str::lower($data['title']), '-');

            // Skip if already exists
            if (KnowledgeBaseEntry::query()->where('normalized_key', $normalizedKey)->exists()) {
                $this->command->line("Skipping (exists): {$data['title']}");
                continue;
            }

            KnowledgeBaseEntry::query()->create([
                'title' => $data['title'],
                'normalized_key' => $normalizedKey,
                'source_category' => 'keyword',
                'question_patterns' => $data['question_patterns'],
                'answer' => $data['answer_en'],
                'answer_bn' => $data['answer_bn'],
                'answer_en' => $data['answer_en'],
                'priority' => $data['priority'],
                'is_active' => true,
                'version' => 1,
            ]);

            $this->command->info("Added: {$data['title']}");
        }

        $this->command->info('AiChatKeywordSeeder done.');
    }
}
