<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Models\Restaurant;
use App\Models\MenuItem;
use App\Models\User;

class RestaurantSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        // إنشاء مطاعم تجريبية
        $restaurants = [
            [
                'name' => 'مطعم الشام الذهبي',
                'description' => 'مطعم متخصص في المأكولات الشامية الأصيلة مع أجود أنواع اللحوم والخضروات الطازجة',
                'address' => 'شارع الرشيد، بغداد، العراق',
                'latitude' => 33.3152,
                'longitude' => 44.3661,
                'phone' => '07901234567',
                'email' => 'info@alshamrestaurant.com',
                'cuisine_type' => 'شامي',
                'rating' => 4.5,
                'rating_count' => 128,
                'is_active' => true,
                'is_open' => true,
                'opening_time' => '10:00:00',
                'closing_time' => '23:00:00',
                'delivery_fee' => 5000,
                'delivery_time_minutes' => 30,
                'minimum_order' => 15000,
            ],
            [
                'name' => 'مطعم البيت العراقي',
                'description' => 'نقدم أشهى الأطباق العراقية التقليدية بطعم أصيل ومكونات طازجة',
                'address' => 'شارع الكرادة، بغداد، العراق',
                'latitude' => 33.3122,
                'longitude' => 44.3661,
                'phone' => '07901234568',
                'email' => 'info@iraqihouse.com',
                'cuisine_type' => 'عراقي',
                'rating' => 4.8,
                'rating_count' => 95,
                'is_active' => true,
                'is_open' => true,
                'opening_time' => '11:00:00',
                'closing_time' => '24:00:00',
                'delivery_fee' => 4000,
                'delivery_time_minutes' => 25,
                'minimum_order' => 12000,
            ],
            [
                'name' => 'مطعم البيتزا الإيطالية',
                'description' => 'أفضل البيتزا والمعكرونة الإيطالية الأصيلة مع عجين طازج يومياً',
                'address' => 'شارع الجادرية، بغداد، العراق',
                'latitude' => 33.3182,
                'longitude' => 44.3661,
                'phone' => '07901234569',
                'email' => 'info@italianpizza.com',
                'cuisine_type' => 'إيطالي',
                'rating' => 4.3,
                'rating_count' => 76,
                'is_active' => true,
                'is_open' => true,
                'opening_time' => '12:00:00',
                'closing_time' => '23:30:00',
                'delivery_fee' => 6000,
                'delivery_time_minutes' => 35,
                'minimum_order' => 18000,
            ],
            [
                'name' => 'مطعم الدجاج المشوي',
                'description' => 'دجاج مشوي طازج يومياً مع الأرز والخضروات الطازجة',
                'address' => 'شارع المتنبي، بغداد، العراق',
                'latitude' => 33.3152,
                'longitude' => 44.3561,
                'phone' => '07901234570',
                'email' => 'info@grilledchicken.com',
                'cuisine_type' => 'عربي',
                'rating' => 4.6,
                'rating_count' => 112,
                'is_active' => true,
                'is_open' => true,
                'opening_time' => '09:00:00',
                'closing_time' => '22:00:00',
                'delivery_fee' => 3000,
                'delivery_time_minutes' => 20,
                'minimum_order' => 10000,
            ],
            [
                'name' => 'مطعم السوشي الياباني',
                'description' => 'سوشي طازج يومياً مع أفضل أنواع الأسماك والمأكولات البحرية',
                'address' => 'شارع المنصور، بغداد، العراق',
                'latitude' => 33.3202,
                'longitude' => 44.3661,
                'phone' => '07901234571',
                'email' => 'info@sushijapan.com',
                'cuisine_type' => 'ياباني',
                'rating' => 4.7,
                'rating_count' => 58,
                'is_active' => true,
                'is_open' => true,
                'opening_time' => '13:00:00',
                'closing_time' => '23:00:00',
                'delivery_fee' => 8000,
                'delivery_time_minutes' => 40,
                'minimum_order' => 25000,
            ],
            [
                'name' => 'مطعم البرجر الأمريكي',
                'description' => 'برجر لحم طازج مع البطاطس المقلية والمشروبات الغازية',
                'address' => 'شارع الكرادة الداخلية، بغداد، العراق',
                'latitude' => 33.3102,
                'longitude' => 44.3561,
                'phone' => '07901234572',
                'email' => 'info@americanburger.com',
                'cuisine_type' => 'أمريكي',
                'rating' => 4.2,
                'rating_count' => 89,
                'is_active' => true,
                'is_open' => true,
                'opening_time' => '10:30:00',
                'closing_time' => '24:00:00',
                'delivery_fee' => 4000,
                'delivery_time_minutes' => 25,
                'minimum_order' => 14000,
            ],
        ];

        foreach ($restaurants as $restaurantData) {
            $restaurant = Restaurant::create($restaurantData);

            // إنشاء وجبات لكل مطعم
            $this->createMenuItems($restaurant);
        }
    }

    private function createMenuItems(Restaurant $restaurant)
    {
        $menuItems = [];

        switch ($restaurant->cuisine_type) {
            case 'شامي':
                $menuItems = $this->getShamiMenuItems();
                break;
            case 'عراقي':
                $menuItems = $this->getIraqiMenuItems();
                break;
            case 'إيطالي':
                $menuItems = $this->getItalianMenuItems();
                break;
            case 'عربي':
                $menuItems = $this->getArabicMenuItems();
                break;
            case 'ياباني':
                $menuItems = $this->getJapaneseMenuItems();
                break;
            case 'أمريكي':
                $menuItems = $this->getAmericanMenuItems();
                break;
        }

        foreach ($menuItems as $itemData) {
            $itemData['restaurant_id'] = $restaurant->id;
            MenuItem::create($itemData);
        }
    }

    private function getShamiMenuItems()
    {
        return [
            [
                'name' => 'كباب مشوي',
                'description' => 'كباب لحم طازج مشوي على الفحم مع الأرز والخضروات',
                'price' => 18000,
                'category' => 'أطباق رئيسية',
                'is_available' => true,
                'is_popular' => true,
                'preparation_time_minutes' => 25,
                'ingredients' => 'لحم بقري، بصل، طماطم، أرز، خضروات',
                'calories' => 650,
            ],
            [
                'name' => 'شاورما دجاج',
                'description' => 'دجاج مشوي مع الخضروات الطازجة في خبز عربي',
                'price' => 15000,
                'category' => 'أطباق رئيسية',
                'is_available' => true,
                'is_popular' => true,
                'preparation_time_minutes' => 20,
                'ingredients' => 'دجاج، خبز عربي، خضروات، صلصة',
                'calories' => 520,
            ],
            [
                'name' => 'فتة حمص',
                'description' => 'حمص مع الطحينة والزيت والليمون',
                'price' => 8000,
                'category' => 'مقبلات',
                'is_available' => true,
                'is_popular' => false,
                'preparation_time_minutes' => 15,
                'ingredients' => 'حمص، طحينة، زيت زيتون، ليمون',
                'calories' => 320,
            ],
            [
                'name' => 'عصير برتقال طازج',
                'description' => 'عصير برتقال طازج مع الثلج',
                'price' => 5000,
                'category' => 'مشروبات',
                'is_available' => true,
                'is_popular' => false,
                'preparation_time_minutes' => 5,
                'ingredients' => 'برتقال طازج، ثلج',
                'calories' => 120,
            ],
        ];
    }

    private function getIraqiMenuItems()
    {
        return [
            [
                'name' => 'قوزي لحم',
                'description' => 'قوزي لحم مع الأرز واللوز والزبيب',
                'price' => 25000,
                'category' => 'أطباق رئيسية',
                'is_available' => true,
                'is_popular' => true,
                'preparation_time_minutes' => 45,
                'ingredients' => 'لحم خروف، أرز، لوز، زبيب، بهارات',
                'calories' => 850,
            ],
            [
                'name' => 'دولمة',
                'description' => 'دولمة بالخضروات واللحم مع الأرز',
                'price' => 20000,
                'category' => 'أطباق رئيسية',
                'is_available' => true,
                'is_popular' => true,
                'preparation_time_minutes' => 35,
                'ingredients' => 'ورق عنب، لحم، أرز، خضروات',
                'calories' => 480,
            ],
            [
                'name' => 'كباب حلة',
                'description' => 'كباب مطبوخ في الحلة مع البطاطس',
                'price' => 22000,
                'category' => 'أطباق رئيسية',
                'is_available' => true,
                'is_popular' => false,
                'preparation_time_minutes' => 40,
                'ingredients' => 'لحم، بطاطس، بصل، طماطم',
                'calories' => 720,
            ],
            [
                'name' => 'شاي عراقي',
                'description' => 'شاي عراقي أصيل مع السكر',
                'price' => 2000,
                'category' => 'مشروبات',
                'is_available' => true,
                'is_popular' => false,
                'preparation_time_minutes' => 5,
                'ingredients' => 'شاي أسود، سكر',
                'calories' => 50,
            ],
        ];
    }

    private function getItalianMenuItems()
    {
        return [
            [
                'name' => 'بيتزا مارغريتا',
                'description' => 'بيتزا بالجبن والطماطم والريحان',
                'price' => 20000,
                'category' => 'أطباق رئيسية',
                'is_available' => true,
                'is_popular' => true,
                'preparation_time_minutes' => 20,
                'ingredients' => 'عجين، جبن موزاريلا، طماطم، ريحان',
                'calories' => 580,
            ],
            [
                'name' => 'باستا كاربونارا',
                'description' => 'باستا بالجبن والبيض واللحم المقدد',
                'price' => 18000,
                'category' => 'أطباق رئيسية',
                'is_available' => true,
                'is_popular' => true,
                'preparation_time_minutes' => 25,
                'ingredients' => 'باستا، جبن بارميزان، بيض، لحم مقدد',
                'calories' => 650,
            ],
            [
                'name' => 'سلطة إيطالية',
                'description' => 'سلطة طازجة مع الطماطم والخضروات',
                'price' => 12000,
                'category' => 'مقبلات',
                'is_available' => true,
                'is_popular' => false,
                'preparation_time_minutes' => 10,
                'ingredients' => 'طماطم، خس، خيار، زيتون',
                'calories' => 150,
            ],
        ];
    }

    private function getArabicMenuItems()
    {
        return [
            [
                'name' => 'دجاج مشوي كامل',
                'description' => 'دجاج مشوي كامل مع الأرز والخضروات',
                'price' => 16000,
                'category' => 'أطباق رئيسية',
                'is_available' => true,
                'is_popular' => true,
                'preparation_time_minutes' => 30,
                'ingredients' => 'دجاج كامل، أرز، خضروات، بهارات',
                'calories' => 750,
            ],
            [
                'name' => 'كباب مشوي',
                'description' => 'كباب لحم مشوي مع الخضروات',
                'price' => 14000,
                'category' => 'أطباق رئيسية',
                'is_available' => true,
                'is_popular' => true,
                'preparation_time_minutes' => 25,
                'ingredients' => 'لحم، خضروات، بهارات',
                'calories' => 520,
            ],
            [
                'name' => 'شاي عربي',
                'description' => 'شاي عربي مع النعناع',
                'price' => 3000,
                'category' => 'مشروبات',
                'is_available' => true,
                'is_popular' => false,
                'preparation_time_minutes' => 5,
                'ingredients' => 'شاي، نعناع، سكر',
                'calories' => 30,
            ],
        ];
    }

    private function getJapaneseMenuItems()
    {
        return [
            [
                'name' => 'سوشي سالمون',
                'description' => 'سوشي سالمون طازج مع الأرز',
                'price' => 30000,
                'category' => 'أطباق رئيسية',
                'is_available' => true,
                'is_popular' => true,
                'preparation_time_minutes' => 15,
                'ingredients' => 'سالمون طازج، أرز، واكامي',
                'calories' => 320,
            ],
            [
                'name' => 'رامن',
                'description' => 'شوربة نودلز يابانية مع الخضروات',
                'price' => 25000,
                'category' => 'أطباق رئيسية',
                'is_available' => true,
                'is_popular' => true,
                'preparation_time_minutes' => 20,
                'ingredients' => 'نودلز، مرق، خضروات، لحم',
                'calories' => 480,
            ],
            [
                'name' => 'ميسو شوربة',
                'description' => 'شوربة ميسو يابانية تقليدية',
                'price' => 8000,
                'category' => 'مقبلات',
                'is_available' => true,
                'is_popular' => false,
                'preparation_time_minutes' => 10,
                'ingredients' => 'ميسو، توفو، أعشاب بحرية',
                'calories' => 80,
            ],
        ];
    }

    private function getAmericanMenuItems()
    {
        return [
            [
                'name' => 'برجر كلاسيك',
                'description' => 'برجر لحم مع الخضروات والبطاطس',
                'price' => 15000,
                'category' => 'أطباق رئيسية',
                'is_available' => true,
                'is_popular' => true,
                'preparation_time_minutes' => 20,
                'ingredients' => 'لحم بقري، خبز، خضروات، جبن',
                'calories' => 680,
            ],
            [
                'name' => 'بطاطس مقلية',
                'description' => 'بطاطس مقلية مقرمشة مع الملح',
                'price' => 8000,
                'category' => 'مقبلات',
                'is_available' => true,
                'is_popular' => true,
                'preparation_time_minutes' => 15,
                'ingredients' => 'بطاطس، زيت، ملح',
                'calories' => 320,
            ],
            [
                'name' => 'كولا',
                'description' => 'مشروب غازي بارد',
                'price' => 4000,
                'category' => 'مشروبات',
                'is_available' => true,
                'is_popular' => false,
                'preparation_time_minutes' => 2,
                'ingredients' => 'كولا، ثلج',
                'calories' => 140,
            ],
        ];
    }
}