<?php
namespace Plugin\PiaReservation\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TelType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints as Assert;
class PiaReservationType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('hope_date01', TextType::class, [
'label' => '第1希望日',
'required' => true,
'attr' => [
'class' => 'form-control',
'placeholder' => 'YYYY-MM-DD',
'readonly' => true
],
'constraints' => [
new Assert\NotBlank(['message' => '第1希望日を選択してください。'])
]
])
->add('hope_time01', ChoiceType::class, [
'label' => '第1希望時間',
'required' => false,
'choices' => [
'10:00' => '10:00',
'10:30' => '10:30',
'11:00' => '11:00',
'11:30' => '11:30',
'12:00' => '12:00',
'12:30' => '12:30',
'13:00' => '13:00',
'13:30' => '13:30',
'14:00' => '14:00',
'14:30' => '14:30',
'15:00' => '15:00',
'15:30' => '15:30',
'16:00' => '16:00',
'16:30' => '16:30',
'17:00' => '17:00',
],
'placeholder' => '時間を選択してください',
'attr' => [
'class' => 'form-control'
]
])
->add('hope_date02', TextType::class, [
'label' => '第2希望日',
'required' => false,
'attr' => [
'class' => 'form-control',
'placeholder' => 'YYYY-MM-DD',
'readonly' => true
]
])
->add('hope_time02', ChoiceType::class, [
'label' => '第2希望時間',
'required' => false,
'choices' => [
'10:00' => '10:00',
'10:30' => '10:30',
'11:00' => '11:00',
'11:30' => '11:30',
'12:00' => '12:00',
'12:30' => '12:30',
'13:00' => '13:00',
'13:30' => '13:30',
'14:00' => '14:00',
'14:30' => '14:30',
'15:00' => '15:00',
'15:30' => '15:30',
'16:00' => '16:00',
'16:30' => '16:30',
'17:00' => '17:00',
],
'placeholder' => '時間を選択してください',
'attr' => [
'class' => 'form-control'
]
])
->add('hope_date03', TextType::class, [
'label' => '第3希望日',
'required' => false,
'attr' => [
'class' => 'form-control',
'placeholder' => 'YYYY-MM-DD',
'readonly' => true
]
])
->add('hope_time03', ChoiceType::class, [
'label' => '第3希望時間',
'required' => false,
'choices' => [
'10:00' => '10:00',
'10:30' => '10:30',
'11:00' => '11:00',
'11:30' => '11:30',
'12:00' => '12:00',
'12:30' => '12:30',
'13:00' => '13:00',
'13:30' => '13:30',
'14:00' => '14:00',
'14:30' => '14:30',
'15:00' => '15:00',
'15:30' => '15:30',
'16:00' => '16:00',
'16:30' => '16:30',
'17:00' => '17:00',
],
'placeholder' => '時間を選択してください',
'attr' => [
'class' => 'form-control'
]
])
->add('reservation_name', TextType::class, [
'label' => 'お名前',
'required' => true,
'attr' => [
'class' => 'form-control'
],
'constraints' => [
new Assert\NotBlank(['message' => 'お名前を入力してください。'])
]
])
->add('reservation_tel', TelType::class, [
'label' => '電話番号',
'required' => true,
'attr' => [
'class' => 'form-control'
],
'constraints' => [
new Assert\NotBlank(['message' => '電話番号を入力してください。'])
]
])
->add('reservation_email', EmailType::class, [
'label' => 'メールアドレス',
'required' => true,
'attr' => [
'class' => 'form-control'
],
'constraints' => [
new Assert\NotBlank(['message' => 'メールアドレスを入力してください。']),
new Assert\Email(['message' => '正しいメールアドレスを入力してください。'])
]
])
->add('visitor', ChoiceType::class, [
'label' => '来店人数',
'required' => false,
'choices' => [
'1名' => '1名',
'2名' => '2名',
'3名' => '3名',
'4名' => '4名',
'5名以上' => '5名以上',
],
'placeholder' => '人数を選択してください',
'attr' => [
'class' => 'form-control'
]
])
->add('visitor_detail', TextareaType::class, [
'label' => '来店者詳細',
'required' => false,
'attr' => [
'class' => 'form-control',
'rows' => 3
]
])
->add('message', TextareaType::class, [
'label' => 'ご要望・ご質問',
'required' => false,
'attr' => [
'class' => 'form-control',
'rows' => 5
]
]);
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => null
]);
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'pia_reservation';
}
}