<?php

namespace App\Http\Controllers;

use App\Models\Product;
use App\Models\Category;
use Illuminate\Http\Request;

class WholesaleProductController extends Controller
{
    /**
     * عرض المنتجات بالجملة في الواجهة الأمامية
     */
    public function index()
    {
        // استرجاع المنتجات بالجملة مع الترقيم
        $wholesale_products = Product::where('is_wholesale', true)
            ->paginate(12);
    
        // استرجاع الفئات التي تحتوي على منتجات بالجملة
        $wholesale_categories = Category::whereHas('products', function($query) {
            $query->where('is_wholesale', true);
        })->get();
    
        // حساب أقل وأعلى سعر للمنتجات بالجملة
        $min_wholesale_price = Product::where('is_wholesale', true)->min('wholesale_price') ?? 0;
        $max_wholesale_price = Product::where('is_wholesale', true)->max('wholesale_price') ?? 1000;
    
        // استرجاع المنتجات الحديثة (آخر 5 منتجات)
        $recent_products = Product::where('is_wholesale', false) // المنتجات العادية
            ->latest()
            ->take(5)
            ->get();
    
        // إرجاع العرض مع البيانات
        return view('frontend.pages.wholesale-products', compact(
            'wholesale_products', 
            'wholesale_categories', 
            'min_wholesale_price', 
            'max_wholesale_price',
            'recent_products'
        ));
    }
    /**
     * عرض تفاصيل منتج بالجملة
     */
    public function show($slug)
    {
        // البحث عن المنتج بالجملة باستخدام السلاغ
        $product = Product::where('is_wholesale', true)
            ->where('slug', $slug)
            ->firstOrFail();

        // إرجاع عرض تفاصيل المنتج
        return view('frontend.pages.wholesale-product-detail', compact('product'));
    }

    /**
     * فلترة المنتجات بالجملة
     */
    public function filter(Request $request)
    {
        // بناء استعلام المنتجات بالجملة
        $query = Product::where('is_wholesale', true);

        // فلترة حسب الفئة
        if ($request->has('category')) {
            $query->whereHas('category', function($q) use ($request) {
                $q->where('slug', $request->category);
            });
        }

        // فلترة حسب نطاق السعر
        if ($request->has('min_price') && $request->has('max_price')) {
            $query->whereBetween('wholesale_price', [
                $request->min_price, 
                $request->max_price
            ]);
        }

        // فلترة حسب الكمية الدنيا
        if ($request->has('min_quantity')) {
            $query->where('minimum_quantity', '>=', $request->min_quantity);
        }

        // الترتيب
        if ($request->has('sort')) {
            switch($request->sort) {
                case 'price_asc':
                    $query->orderBy('wholesale_price', 'asc');
                    break;
                case 'price_desc':
                    $query->orderBy('wholesale_price', 'desc');
                    break;
                case 'newest':
                    $query->orderBy('created_at', 'desc');
                    break;
            }
        }

        // الحصول على النتائج مع الترقيم
        $wholesale_products = $query->paginate(12);

        // إرجاع العرض مع النتائج
        return view('frontend.pages.wholesale-products', compact('wholesale_products'));
    }

    /**
     * إضافة منتج بالجملة إلى سلة التسوق
     */
    public function addToCart(Request $request)
    {
        $this->validate($request, [
            'product_id' => 'required|exists:products,id',
            'quantity' => 'required|numeric|min:1'
        ]);

        $product = Product::findOrFail($request->product_id);

        // التحقق من الكمية الدنيا
        if ($request->quantity < $product->minimum_quantity) {
            return redirect()->back()->with('error', 
                "الحد الأدنى للكمية هو {$product->minimum_quantity}"
            );
        }

        // منطق إضافة المنتج للسلة
        // يمكنك استخدام حزمة سلة التسوق مثل Laravel Cart أو تنفيذ منطق مخصص
        // مثال مبسط:
        \Cart::add([
            'id' => $product->id,
            'name' => $product->title,
            'price' => $product->wholesale_price,
            'quantity' => $request->quantity,
            'attributes' => [
                'is_wholesale' => true,
                'minimum_quantity' => $product->minimum_quantity
            ]
        ]);

        return redirect()->route('cart.index')
            ->with('success', 'تمت إضافة المنتج إلى سلة التسوق');
    }
}