<?php

namespace Database\Seeders;

use App\Models\Product;
use App\Models\ProductShowcase;
use App\Models\ProductShowcaseItem;
use Illuminate\Database\Seeder;

class ProductShowcasesSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        // حذف ویترین‌های قبلی با رعایت foreign key
        ProductShowcaseItem::query()->delete();
        ProductShowcase::query()->delete();

        // ویترین 1: پرفروش‌ترین محصولات
        $showcase1 = ProductShowcase::create([
            'title' => 'پرفروش‌ترین محصولات',
            'subtitle' => 'محصولاتی که مشتریان بیشتر خریداری کرده‌اند',
            'display_type' => 'grid',
            'products_limit' => 8,
            'bg_color' => '#F5F5F5',
            'title_color' => '#1976D2',
            'sort_order' => 1,
            'is_active' => true,
        ]);

        // افزودن محصولات به ویترین 1
        $products = Product::where('is_active', true)
            ->inRandomOrder()
            ->take(8)
            ->get();

        foreach ($products as $index => $product) {
            ProductShowcaseItem::create([
                'showcase_id' => $showcase1->id,
                'product_id' => $product->id,
                'sort_order' => $index,
            ]);
        }

        // ویترین 2: محصولات تخفیف‌دار
        $showcase2 = ProductShowcase::create([
            'title' => 'محصولات تخفیف‌دار',
            'subtitle' => 'بهترین پیشنهادات با تخفیف‌های ویژه',
            'display_type' => 'carousel',
            'products_limit' => 10,
            'bg_color' => '#FFEBEE',
            'title_color' => '#C62828',
            'sort_order' => 2,
            'is_active' => true,
        ]);

        // افزودن محصولات تخفیف‌دار
        $discountedProducts = Product::whereNotNull('discount_price')
            ->where('is_active', true)
            ->take(10)
            ->get();

        if ($discountedProducts->count() > 0) {
            foreach ($discountedProducts as $index => $product) {
                ProductShowcaseItem::create([
                    'showcase_id' => $showcase2->id,
                    'product_id' => $product->id,
                    'sort_order' => $index,
                ]);
            }
        }

        // ویترین 3: جدیدترین محصولات
        $showcase3 = ProductShowcase::create([
            'title' => 'جدیدترین محصولات',
            'subtitle' => 'تازه‌ترین محصولات اضافه شده به فروشگاه',
            'display_type' => 'grid',
            'products_limit' => 6,
            'bg_color' => '#E8F5E9',
            'title_color' => '#2E7D32',
            'sort_order' => 3,
            'is_active' => true,
        ]);

        // افزودن جدیدترین محصولات
        $newestProducts = Product::where('is_active', true)
            ->orderBy('created_at', 'DESC')
            ->take(6)
            ->get();

        foreach ($newestProducts as $index => $product) {
            ProductShowcaseItem::create([
                'showcase_id' => $showcase3->id,
                'product_id' => $product->id,
                'sort_order' => $index,
            ]);
        }
    }
}
