<?php

namespace App\Form;

use App\Entity\Commune;
use App\Entity\Department;
use App\Entity\User;
use App\Entity\Ministry;
use App\Entity\Direction;
use App\Repository\MinistryRepository;
use App\Repository\DirectionRepository;
use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TelType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;

class User2Type extends AbstractType
{
    private $tokenStorage;

    public function __construct(TokenStorageInterface $tokenStorage)
    {
        $this->tokenStorage = $tokenStorage;
    }

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('email', EmailType::class, [
                'label' => 'basics.email',
                //'disabled' => true
            ])
            ->add('givenName', TextType::class, [
                'label' => 'basics.givenName',
            ])
            ->add('familyName', TextType::class, [
                'label' => 'basics.familyName',
            ])
            ->add('telephone', TelType::class, [
                'label' => 'basics.telephone',
                'required' => false,
            ])

            ->add('office', TextType::class, [
                'label' => 'basics.office',
                'required' => false,
            ])
        ;

    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => User::class,
            ]);
    }
}
