<?php

namespace Database\Seeders;

use App\Models\Category;
use App\Models\Product;
use App\Models\SocialLink;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;

class DatabaseSeeder extends Seeder
{
    public function run(): void
    {
        // ── Admin user ──
        User::updateOrCreate(
            ['email' => 'admin@artisanal.ma'],
            [
                'name'     => 'Administrateur',
                'email'    => 'admin@artisanal.ma',
                'password' => Hash::make('Admin@123'),
                'is_admin' => true,
            ]
        );

        // ── Catégories ──
        $categories = [
            ['name' => 'Poterie & Céramique', 'icon' => 'fas fa-circle', 'description' => 'Poteries, vases et céramiques artisanales'],
            ['name' => 'Vannerie & Osier',    'icon' => 'fas fa-leaf',   'description' => 'Couffins, paniers et objets en osier'],
            ['name' => 'Textile & Tissage',   'icon' => 'fas fa-th',     'description' => 'Tapis, coussins et textiles traditionnels'],
            ['name' => 'Bois & Sculpture',    'icon' => 'fas fa-tree',   'description' => 'Objets sculptés et décorés en bois'],
            ['name' => 'Cuir & Maroquinerie', 'icon' => 'fas fa-suitcase','description' => 'Sacs, ceintures et accessoires en cuir'],
            ['name' => 'Bijoux & Accessoires','icon' => 'fas fa-gem',    'description' => 'Bijoux traditionnels et accessoires'],
        ];

        $createdCategories = [];
        foreach ($categories as $cat) {
            $createdCategories[] = Category::updateOrCreate(
                ['slug' => Str::slug($cat['name'])],
                ['name' => $cat['name'], 'icon' => $cat['icon'], 'description' => $cat['description'], 'is_active' => true]
            );
        }

        // ── Produits ──
        $products = [
            ['name' => 'Vase en poterie traditionnelle', 'cat' => 0, 'price' => 250.00, 'featured' => true,
             'desc' => 'Magnifique vase en poterie façonné à la main, orné de motifs géométriques traditionnels marocains.',
             'short' => 'Vase artisanal fait main, décoré de motifs berbères.'],
            ['name' => 'Couffin bébé en osier naturel', 'cat' => 1, 'price' => 350.00, 'featured' => true,
             'desc' => 'Couffin bébé tissé à la main en osier naturel, sûr, écologique et élégant pour votre nourrisson.',
             'short' => 'Couffin 100% naturel, idéal pour les nouveau-nés.'],
            ['name' => 'Tapis berbère fait main', 'cat' => 2, 'price' => 1200.00, 'featured' => true,
             'desc' => 'Tapis berbère authentique tissé à la main avec de la laine naturelle. Motifs géométriques colorés.',
             'short' => 'Tapis authentique en laine naturelle, motifs berbères.'],
            ['name' => 'Plateau en bois sculpté', 'cat' => 3, 'price' => 180.00, 'featured' => false,
             'desc' => 'Plateau décoratif en bois de thuya sculpté à la main avec des arabesques élaborées.',
             'short' => 'Plateau en bois de thuya sculpté, finition naturelle.'],
            ['name' => 'Sac en cuir tanné végétal', 'cat' => 4, 'price' => 680.00, 'featured' => true,
             'desc' => 'Sac à main en cuir tanné végétalement, cousu à la main par nos maîtres artisans fassiens.',
             'short' => 'Sac en cuir naturel cousu main, qualité supérieure.'],
            ['name' => 'Collier en argent berbère', 'cat' => 5, 'price' => 450.00, 'featured' => true,
             'desc' => 'Collier en argent massif serti de pierres semi-précieuses, design berbère traditionnel.',
             'short' => 'Collier argent et pierres, bijou artisanal unique.'],
            ['name' => 'Panier osier décoratif', 'cat' => 1, 'price' => 95.00, 'featured' => false,
             'desc' => 'Panier décoratif en osier tressé à la main, idéal pour le rangement ou la décoration intérieure.',
             'short' => 'Panier osier multifonction, fait main.'],
            ['name' => 'Coussin brodé traditionnel', 'cat' => 2, 'price' => 220.00, 'featured' => false,
             'desc' => 'Coussin décoratif orné de broderies traditionnelles faites à la main par nos artisanes.',
             'short' => 'Coussin avec broderies faites main, couleurs vibrantes.'],
        ];

        foreach ($products as $p) {
            Product::updateOrCreate(
                ['slug' => Str::slug($p['name']) . '-' . $p['cat']],
                [
                    'category_id'       => $createdCategories[$p['cat']]->id,
                    'name'              => $p['name'],
                    'slug'              => Str::slug($p['name']) . '-' . $p['cat'],
                    'description'       => $p['desc'],
                    'short_description' => $p['short'],
                    'price'             => $p['price'],
                    'is_featured'       => $p['featured'],
                    'is_active'         => true,
                ]
            );
        }

        // ── Réseaux sociaux ──
        $socials = [
            ['platform' => 'Facebook',  'icon' => 'fab fa-facebook-f',  'url' => 'https://facebook.com/artisanal', 'color' => '#1877F2', 'sort_order' => 1],
            ['platform' => 'Instagram', 'icon' => 'fab fa-instagram',   'url' => 'https://instagram.com/artisanal','color' => '#E4405F', 'sort_order' => 2],
            ['platform' => 'WhatsApp',  'icon' => 'fab fa-whatsapp',    'url' => 'https://wa.me/212600000000',     'color' => '#25D366', 'sort_order' => 3],
            ['platform' => 'TikTok',    'icon' => 'fab fa-tiktok',      'url' => 'https://tiktok.com/@artisanal', 'color' => '#000000', 'sort_order' => 4],
            ['platform' => 'YouTube',   'icon' => 'fab fa-youtube',     'url' => 'https://youtube.com/@artisanal','color' => '#FF0000', 'sort_order' => 5],
        ];

        foreach ($socials as $social) {
            SocialLink::updateOrCreate(
                ['platform' => $social['platform']],
                $social + ['is_active' => true]
            );
        }
    }
}
