<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\AccessoryCategory;
use App\Accessory;

class AccessorySeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $this->generateAccessoriesTestData();
    }

    /**
     * Generate test data for accessories
     */
    private function generateAccessoriesTestData()
    {
        echo "Generating accessories test data...\n";
        
        // Get all existing accessory categories
        $categories = AccessoryCategory::select('id', 'name')->get();
        
        if ($categories->isEmpty()) {
            echo "No accessory categories found. Please create some categories first.\n";
            return;
        }

        // Define sample accessory names for variety
        $accessoryNames = [
            'Classic Obi Belt', 'Silk Haneri', 'Traditional Geta', 'Wooden Zori', 'Elegant Tabi Socks',
            'Gold Obidome', 'Silver Hair Pin', 'Floral Kanzashi', 'Bamboo Fan', 'Silk Fukuro Obi',
            'Cotton Nagajuban', 'Vintage Haori', 'Modern Obiage', 'Decorative Obijime', 'Ceremonial Hakama',
            'Summer Yukata Belt', 'Winter Shawl', 'Elegant Clutch', 'Pearl Necklace', 'Jade Bracelet',
            'Traditional Sandals', 'Lace Gloves', 'Embroidered Purse', 'Crystal Earrings', 'Silk Scarf'
        ];

        foreach ($categories as $category) {
            echo "Creating accessories for category: {$category->name}\n";
            
            // Create 3-8 accessories per category
            $accessoryCount = rand(3, 8);
            
            for ($i = 1; $i <= $accessoryCount; $i++) {
                // Generate random code: One uppercase letter + 5 digits
                $code = chr(rand(65, 90)) . str_pad(rand(0, 99999), 5, '0', STR_PAD_LEFT);
                
                // Pick a random accessory name
                $name = $accessoryNames[array_rand($accessoryNames)] . ' #' . $i;
                
                // Create the accessory
                Accessory::create([
                    'accessory_category_id' => $category->id,
                    'code' => $code,
                    'name' => $name,
                    'description' => 'Test accessory for ' . $category->name,
                    'image' => 'b6afb65e2d837e6823536a240a863f70.jpeg',
                    'position' => $i,
                    'is_activated' => 1,
                    'is_deleted' => 0,
                    'created_at' => now(),
                    'updated_at' => now()
                ]);
                
                echo "  Created accessory: {$code} - {$name}\n";
            }
        }
        
        echo "Accessories test data generation completed!\n";
    }
}