<?php

namespace PrestaShop\Module\PolarisPrestaTheme\Forms;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use PrestaShopBundle\Form\Admin\Type\SwitchType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\TextType;

class ProductHomeType extends AbstractType{

    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder

        ->add('isVisible',SwitchType::class, [
            'required' => false,
            'label' => 'Activer la visibilité',
        ])

        ->add('title',TextType::class, [
            'label'    => 'Titre',
            "attr"=>[
                "placeholder" => "Ajouter un titre au block produit"
            ]
        ])

        ->add('typeProduit', choiceType::class, [
                'choices' => [
                    'Nouveauté' => 'new',
                    'Promotion' => 'sale',
                    'Selection personnalisée'=> 'custom',
                ],
                'label' => 'choissisez les produits à afficher ',
        ])

        ->add('nbProduit', IntegerType::class,[
            'label'    => 'Produits à afficher',
            'attr' => ['min' => 4, 'max' => 20],
            "attr"=>[
                "placeholder" => "Ajouter un nombre de produits à afficher (entre 4 et 20)"
            ]
        ])

        ->add('customProduct', TextType::class, [
            'label'    => 'Sélection de produits',
            'required' => false,
            'mapped'   => false, // champ UI seulement, non sauvegardé
            'attr' => [
                'placeholder'         => "Saisir l'ID d'un produit...",
                'data-product-search' => 'true',
                'autocomplete'        => 'off',
            ]
        ])

        ->add('productIds', TextType::class, [
            'label'    => false,
            'required' => false,
            'empty_data' => '',
            'attr' => [
                'data-product-ids' => 'true',
                'style'            => 'display:none',  // champ caché
            ]
        ])
        
        ->add('save', SubmitType::class , [
                'label' => 'Enregistrer',
                'attr' => [
                    'class' => 'btn btn-primary',
                ],
        ])
    ;
    }

       public static function getIntro(): ?string
    {
        return 'Cette page vous permet d\'afficher un bloc dédié aux nouveaux produits </br>
        - Activez ou désactivez l\'affichage de ce bloc grâce à l\'interrupteur "Activer la visibilité".</br>
        - Définissez le nombre de produits à afficher dans ce bloc.</br></br>

        Si vous affichez plus de 4 produits, ceux-ci seront automatiquement présentés sous forme de slider défilant pour une meilleure ergonomie.
        ';
    }


}