<?php

namespace Drupal\restaurant_bookings\Form;

use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\restaurant\Form\AppForm;
use Drupal\restaurant\Bookings\Booking;
use Symfony\Component\HttpFoundation\Session\Session;
use Drupal\restaurant\Form\MultipartForm;

use Drupal\restaurant_bookings\Form\FormElements;
use Drupal\restaurant\Form\Heading;

use Drupal\Core\Ajax\AjaxResponse;
use Drupal\Core\Ajax\ReplaceCommand;
use Drupal\Core\Ajax\OpenModalDialogCommand;
use Drupal\Core\Ajax\InvokeCommand;



/**
* BOOKINGS FORM STEP 1
*/
class AjaxBookingsAdd extends MultipartForm
{
  /**
   * Returns a unique string identifying the form.
   *
   * The returned ID should be a unique string that can be a valid PHP function
   * name, since it's used in hook implementation names such as
   * hook_form_FORM_ID_alter().
   *
   * @return string
   *   The unique string identifying the form.
   */
  public function getFormId() {
    return 'add_ajax_booking';
  }

  public function buildForm(array $form, FormStateInterface $form_state)
  {

    if ($this->getSetting('requirelogin')) {

      if (! \Drupal::currentUser()->isAuthenticated()) {
        $this->addMessage($this->t('Login required to make a booking'), 'error')->http_redirect('/user/login');
      }
    }


    /*if (! $this->getSession()->has('date')) {
      $this->getSession()->set('date', time());
    } else {
      $this->getSession()->set('date', $this->getSession()->get('date'));
    } */


    $this->getSession()->set('guests', 2);
    $this->getSession()->set('date', time());


    $form = FormElements::Front($form, $this->getSession()->get('date'), $this->getSession()->get('guests'), $this->inAdminPath());
    return $form;

  }

  public function submitForm(array &$form, FormStateInterface $form_state)
  {
  }

}
