<?php

namespace Database\Seeders;

use App\Models\Content;
use App\Models\SiteSetting;
use App\Models\Testimonial;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;

class DatabaseSeeder extends Seeder
{
    public function run(): void
    {
        User::query()->updateOrCreate(
            ['email' => env('ADMIN_EMAIL', 'admin@pirras.local')],
            [
                'name' => 'Administrateur',
                'password' => Hash::make(env('ADMIN_PASSWORD', 'changeme')),
                'is_admin' => true,
            ]
        );

        $settings = [
            'contact_hero_kicker' => 'Contact',
            'contact_hero_title' => 'Parlons de votre projet',
            'contact_hero_text' => 'Choisissez votre besoin, partagez vos objectifs, et notre equipe vous recontacte rapidement avec une approche concrete.',
            'contact_whatsapp_url' => 'https://wa.me/22500000000?text=Bonjour%2C%20je%20souhaite%20des%20informations.',
            'contact_email_display' => 'contact@pirras-associe.com',
            'contact_calendly_url' => 'https://calendly.com',
            'ressources_hero_title' => 'Contenus pour reussir entre la Chine et l\'Afrique',
            'ressources_hero_sub' => 'Blog oriente SEO, guides pratiques et veille actualites pour securiser vos imports, vos achats et votre mise en marche.',
        ];

        foreach ($settings as $key => $value) {
            SiteSetting::query()->updateOrCreate(['key' => $key], ['value' => $value]);
        }

        $blogs = [
            [
                'title' => 'Comment auditer un fournisseur en Chine avant la premiere commande',
                'slug' => 'seed-auditer-fournisseur-chine',
                'tag' => 'Sourcing',
                'excerpt' => 'Criteres de verification, documents utiles et pieges a eviter pour securiser la relation fournisseur-distance.',
                'sort_order' => 1,
                'cta_label' => 'Demander l\'accompagnement',
                'cta_url' => '/contact',
            ],
            [
                'title' => 'Groupage maritime : quand le conteneur partiel devient rentable',
                'slug' => 'seed-groupage-maritime',
                'tag' => 'Logistique',
                'excerpt' => 'Comparer FCL et LCL, comprendre les surcharges et piloter vos delai-cout sur les routes Asie-Afrique.',
                'sort_order' => 2,
                'cta_label' => 'Parlons de votre flux',
                'cta_url' => '/contact',
            ],
            [
                'title' => 'Mise en marche a Abidjan : calendrier et canaux pour lancer un produit',
                'slug' => 'seed-mise-en-marche-abidjan',
                'tag' => 'Commerce',
                'excerpt' => 'Distribution, forces de vente et prix : les etapes pour eviter les erreurs de lancement sur le terrain.',
                'sort_order' => 3,
                'cta_label' => 'Projet de lancement',
                'cta_url' => '/contact',
            ],
            [
                'title' => 'China Business Trip : preparer son carnet de rendez-vous fournisseurs',
                'slug' => 'seed-china-business-trip',
                'tag' => 'Voyage',
                'excerpt' => 'Objectifs, selection des usines et suivi post-voyage pour transformer le deplacement en contrats.',
                'sort_order' => 4,
                'cta_label' => 'Infos sur le trip',
                'cta_url' => '/contact',
            ],
        ];

        foreach ($blogs as $row) {
            Content::query()->updateOrCreate(
                ['slug' => $row['slug']],
                array_merge($row, [
                    'type' => Content::TYPE_BLOG,
                    'is_published' => true,
                    'published_at' => now(),
                ])
            );
        }

        Content::query()->updateOrCreate(
            ['slug' => 'seed-guide-import-chine'],
            [
                'type' => Content::TYPE_GUIDE,
                'title' => 'Import depuis la Chine',
                'excerpt' => 'De l\'Incoterms au dedouanement : roles, documents, assurance, check-list avant expedition et erreurs frequentes.',
                'sort_order' => 1,
                'cta_label' => 'Obtenir le guide',
                'cta_url' => '/contact',
                'is_published' => true,
                'published_at' => now(),
            ]
        );

        Content::query()->updateOrCreate(
            ['slug' => 'seed-guide-securite-fournisseurs'],
            [
                'type' => Content::TYPE_GUIDE,
                'title' => 'Securite des fournisseurs',
                'excerpt' => 'Verification d\'identite, usine reelle vs trading company, pre-production et controle qualite.',
                'sort_order' => 2,
                'cta_label' => 'Recevoir la check-list',
                'cta_url' => '/contact',
                'is_published' => true,
                'published_at' => now(),
            ]
        );

        Content::query()->updateOrCreate(
            ['slug' => 'seed-actu-canton-fair'],
            [
                'type' => Content::TYPE_NEWS,
                'title' => 'Canton Fair : calendrier et strategie de visite',
                'tag' => 'Salon',
                'excerpt' => 'Phases de la foire, planification des stands et comment optimiser les rendez-vous avec vos categories produits prioritaires.',
                'sort_order' => 1,
                'cta_label' => 'Etre accompagne au salon',
                'cta_url' => '/contact',
                'is_published' => true,
                'published_at' => now(),
            ]
        );

        Content::query()->updateOrCreate(
            ['slug' => 'seed-actu-tendances'],
            [
                'type' => Content::TYPE_NEWS,
                'title' => 'Tendances sourcing et logistique Chine-Afrique',
                'tag' => 'Tendances',
                'excerpt' => 'Routings, couts, produits porteurs : une synthese pour ajuster votre mix produits et vos stocks.',
                'sort_order' => 2,
                'cta_label' => 'Echanger avec l\'equipe',
                'cta_url' => '/contact',
                'is_published' => true,
                'published_at' => now(),
            ]
        );

        Testimonial::query()->updateOrCreate(
            ['author_name' => 'Awa Kone'],
            [
                'tag' => 'CBT',
                'stars' => 5,
                'quote' => 'Le trip etait structure, utile et tres rentable. Nous avons securise des contacts strategiques en Chine.',
                'author_role' => 'Participante China Business Trip',
                'avatar_path' => null,
                'sort_order' => 1,
                'is_published' => true,
            ]
        );

        Testimonial::query()->updateOrCreate(
            ['author_name' => 'Mamadou Bah'],
            [
                'tag' => 'Logistique',
                'stars' => 5,
                'quote' => 'Delais mieux maitrises et couts reduits. Le suivi est professionnel et rassurant.',
                'author_role' => 'Responsable Import',
                'avatar_path' => null,
                'sort_order' => 2,
                'is_published' => true,
            ]
        );

        Testimonial::query()->updateOrCreate(
            ['author_name' => 'Fatou Toure'],
            [
                'tag' => 'Centrale d\'achat',
                'stars' => 5,
                'quote' => 'Nous avons gagne en qualite fournisseur et en performance commerciale sur nos achats.',
                'author_role' => 'Directrice Commerciale',
                'avatar_path' => null,
                'sort_order' => 3,
                'is_published' => true,
            ]
        );
    }
}
