<?php 
 
namespace DcSiteBundle\Form; 
 
use CoreBundle\Form\CoreFormsType; 
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; 
use Symfony\Component\Form\Extension\Core\Type\TextareaType; 
use Symfony\Component\Form\FormBuilderInterface; 
use Symfony\Component\OptionsResolver\OptionsResolver; 
use Symfony\Contracts\Translation\TranslatorInterface; 
 
class  SendQuestionType extends CoreFormsType 
{ 
 
    const SALE_BUY_TYPE = 1; 
    const TO_SERVICE_TYPE = 2; 
    const ACCESSORIES_EQUIPMENT_TYPE = 3; 
    const FINANCE_TYPE = 4; 
    const OTHER_QUESTIONS_TYPE = 5; 
    const DEALER_BECOME_TYPE = 6; 
    const NOTIFY_ABOUT_PRICE_TYPE = 7; 
    const QUESTIONS_ABOUT_BUYING_CAR = 8; 
    const DAY_RIDE = 9; 
    const TOURS = 10; 
    const ROLLING = 11; 
    const SALE_BUY_TYPE_BOAT = 12; 
    const QUESTIONS_ABOUT_BUYING_BOAT = 13; 
 
    /** 
     * @return string[] 
     */ 
    public static function getTypes() 
    { 
        return [ 
            self::SALE_BUY_TYPE => 'Покупка авто', 
            self::SALE_BUY_TYPE_BOAT => 'Покупка човна', 
            self::TO_SERVICE_TYPE => 'Сервіс', 
            self::ACCESSORIES_EQUIPMENT_TYPE =>'Аксесуари та додаткове обладнання', 
            self::FINANCE_TYPE => 'Партнерська пропозиція', 
            self::OTHER_QUESTIONS_TYPE => 'Інші питання', 
            self::DEALER_BECOME_TYPE => 'Стати дилером', 
            self::NOTIFY_ABOUT_PRICE_TYPE => 'Повідомити про зміну ціни', 
            self::QUESTIONS_ABOUT_BUYING_CAR => 'Питання щодо викупу авто', 
            self::QUESTIONS_ABOUT_BUYING_BOAT => 'Питання щодо викупу човна', 
            self::DAY_RIDE => 'Запис на Day Ride', 
            self::TOURS => 'Запис на тур', 
            self::ROLLING => 'Прокат', 
        ]; 
    } 
 
    /** 
     * @param $type 
     * @return string 
     */ 
    public static function getTitle($type) 
    { 
        return self::getTypes()[$type]; 
    } 
 
    /** 
     * @param FormBuilderInterface $builder 
     * @param array $options 
     * @return int|void 
     */ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
        parent::buildForm($builder, $options); 
 
        /** @var TranslatorInterface $Translator */ 
        $Translator = $options['translator']; 
 
        $select_dealer = $options['select_dealer'] ?: []; 
        $default_question = $options['default_question'] ?: null; 
 
        $builder->add('select_subject_question', ChoiceType::class, [ 
            'label' => false, 
            'required' => true, 
            'choices' => array_flip(self::getTypes()), 
            'mapped' => false, 
            'data' => $default_question, 
        ]); 
        $builder->add('select_dealer', ChoiceType::class, [ 
            'label' => false, 
            'required' => false, 
            'choices' => array_flip($select_dealer), 
            'attr' => [ 
                'placeholder' => $Translator->trans('form.dealer_choose', [], 'dc_base'), 
            ], 
            'mapped' => false, 
        ]); 
        $builder->add('comment', TextareaType::class, [ 
            'label' => false, 
            'required' => false, 
            'attr' => [ 
                'placeholder' => $Translator->trans('form.comment', [], 'dc_base'), 
            ], 
            'mapped' => false, 
        ]); 
 
    } 
 
    public function configureOptions(OptionsResolver $resolver) 
    { 
        parent::configureOptions($resolver); 
        $resolver 
            ->setDefined('select_dealer') 
            ->setDefined('default_question') 
            ->setDefault('captcha_type', 'sendQuestionType'); 
    } 
}