<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Models\Order;
use App\Models\OrderItem;
use App\Models\GasOffice;
use App\Models\Cylinder;

class OrderSeederForGasOffice1 extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        // البحث عن مكتب الغاز رقم 1
        $gasOffice = GasOffice::find(1);
        
        if (!$gasOffice) {
            $this->command->error('❌ مكتب الغاز رقم 1 غير موجود!');
            return;
        }

        $this->command->info("🚀 إنشاء طلبات لمكتب الغاز: {$gasOffice->name}");

        $cylinders = $gasOffice->cylinders;

        if ($cylinders->isEmpty()) {
            $this->command->error('❌ لا توجد قناني غاز في هذا المكتب!');
            return;
        }

        // إنشاء طلبات متنوعة
        $orders = [
            [
                'customer_name' => 'أحمد محمد علي',
                'customer_phone' => '07901111111',
                'address' => 'بغداد - الكرادة - شارع الكرادة الداخلية - عمارة 15',
                'total_amount' => 0, // سيتم حسابها لاحقاً
                'status' => 'pending',
                'notes' => 'يرجى التوصيل في المساء بعد الساعة 7',
                'gas_office_id' => $gasOffice->id,
                'created_at' => now()->subHours(2),
            ],
            [
                'customer_name' => 'فاطمة حسن محمد',
                'customer_phone' => '07902222222',
                'address' => 'بغداد - الكرادة - مجمع الكرادة السكني - بناية 8',
                'total_amount' => 0,
                'status' => 'completed',
                'notes' => 'تم التوصيل بنجاح - عميل راضي',
                'gas_office_id' => $gasOffice->id,
                'created_at' => now()->subDay(),
            ],
            [
                'customer_name' => 'محمد علي حسين',
                'customer_phone' => '07903333333',
                'address' => 'بغداد - الكرادة - شارع الكرادة الخارجية - بيت 25',
                'total_amount' => 0,
                'status' => 'processing',
                'notes' => 'طلب عاجل - يرجى الأولوية',
                'gas_office_id' => $gasOffice->id,
                'created_at' => now()->subHours(5),
            ],
            [
                'customer_name' => 'علي حسن أحمد',
                'customer_phone' => '07904444444',
                'address' => 'بغداد - الكرادة - شارع الكرادة الشمالي',
                'total_amount' => 0,
                'status' => 'pending',
                'notes' => 'يرجى التأكد من جودة القناني',
                'gas_office_id' => $gasOffice->id,
                'created_at' => now()->subHours(1),
            ],
            [
                'customer_name' => 'زينب محمد علي',
                'customer_phone' => '07905555555',
                'address' => 'بغداد - الكرادة - شارع الكرادة الجنوبي',
                'total_amount' => 0,
                'status' => 'completed',
                'notes' => 'شكراً لكم - خدمة ممتازة',
                'gas_office_id' => $gasOffice->id,
                'created_at' => now()->subDays(2),
            ],
            [
                'customer_name' => 'حسن محمد كريم',
                'customer_phone' => '07906666666',
                'address' => 'بغداد - الكرادة - شارع الكرادة الشرقي',
                'total_amount' => 0,
                'status' => 'cancelled',
                'notes' => 'تم الإلغاء من قبل العميل',
                'gas_office_id' => $gasOffice->id,
                'created_at' => now()->subHours(3),
            ],
            [
                'customer_name' => 'نورا أحمد حسن',
                'customer_phone' => '07907777777',
                'address' => 'بغداد - الكرادة - شارع الكرادة الغربي',
                'total_amount' => 0,
                'status' => 'pending',
                'notes' => 'يرجى التوصيل في الصباح',
                'gas_office_id' => $gasOffice->id,
                'created_at' => now()->subMinutes(30),
            ],
            [
                'customer_name' => 'عبدالله محمد علي',
                'customer_phone' => '07908888888',
                'address' => 'بغداد - الكرادة - مجمع الكرادة التجاري',
                'total_amount' => 0,
                'status' => 'processing',
                'notes' => 'طلب كبير - يرجى التحضير مسبقاً',
                'gas_office_id' => $gasOffice->id,
                'created_at' => now()->subHours(8),
            ],
            [
                'customer_name' => 'مريم حسن أحمد',
                'customer_phone' => '07909999999',
                'address' => 'بغداد - الكرادة - شارع الكرادة الرئيسي',
                'total_amount' => 0,
                'status' => 'completed',
                'notes' => 'عميل دائم - يرجى معاملة خاصة',
                'gas_office_id' => $gasOffice->id,
                'created_at' => now()->subDays(3),
            ],
            [
                'customer_name' => 'خالد محمد كريم',
                'customer_phone' => '07901010101',
                'address' => 'بغداد - الكرادة - شارع الكرادة الفرعي',
                'total_amount' => 0,
                'status' => 'pending',
                'notes' => 'يرجى الاتصال قبل التوصيل',
                'gas_office_id' => $gasOffice->id,
                'created_at' => now()->subMinutes(15),
            ],
        ];

        $createdOrders = 0;

        foreach ($orders as $orderData) {
            $order = Order::create($orderData);

            // إضافة عناصر الطلب
            $randomCylinders = $cylinders->random(rand(1, 3));
            $totalAmount = 0;

            foreach ($randomCylinders as $cylinder) {
                $quantity = rand(1, 4);
                $itemTotal = $cylinder->price * $quantity;
                $totalAmount += $itemTotal;

                OrderItem::create([
                    'order_id' => $order->id,
                    'cylinder_id' => $cylinder->id,
                    'cylinder_name' => $cylinder->name,
                    'quantity' => $quantity,
                    'price' => $cylinder->price,
                    'total' => $itemTotal,
                ]);
            }

            // تحديث المبلغ الإجمالي
            $order->update(['total_amount' => $totalAmount]);
            $createdOrders++;

            $this->command->info("✅ تم إنشاء الطلب رقم {$order->id} - العميل: {$order->customer_name} - المبلغ: {$totalAmount} د.ع");
        }

        $this->command->info("🎉 تم إنشاء {$createdOrders} طلب بنجاح لمكتب الغاز: {$gasOffice->name}");
        
        // إحصائيات الطلبات
        $pendingOrders = Order::where('gas_office_id', $gasOffice->id)->where('status', 'pending')->count();
        $processingOrders = Order::where('gas_office_id', $gasOffice->id)->where('status', 'processing')->count();
        $completedOrders = Order::where('gas_office_id', $gasOffice->id)->where('status', 'completed')->count();
        $cancelledOrders = Order::where('gas_office_id', $gasOffice->id)->where('status', 'cancelled')->count();
        $totalRevenue = Order::where('gas_office_id', $gasOffice->id)->where('status', 'completed')->sum('total_amount');

        $this->command->info("📊 إحصائيات الطلبات:");
        $this->command->info("   🔴 معلق: {$pendingOrders}");
        $this->command->info("   🟡 قيد المعالجة: {$processingOrders}");
        $this->command->info("   🟢 مكتمل: {$completedOrders}");
        $this->command->info("   ⚫ ملغي: {$cancelledOrders}");
        $this->command->info("   💰 إجمالي الإيرادات: {$totalRevenue} د.ع");
    }
}
