/**
  * @return CheckfrontItemModel
  */
 public function getItem()
 {
     if ($this->isValid()) {
         $item = new CheckfrontItemModel();
         $item->fromCheckfront($this->data[static::SimpleMatchKey]);
         return $item;
     }
 }
 /**
  * Gets the package items using config.package_item_path as index into data and
  * return a list of CheckfrontItemModels.
  *
  * @return SS_List may be empty
  */
 public function getPackageItems()
 {
     $list = new ArrayList();
     if ($this->isValid()) {
         $path = self::get_config_setting('package_items_path');
         $packageItems = CheckfrontModule::lookup_path($path, $this->data, $found);
         if ($packageItems && $found) {
             foreach ($packageItems as $item) {
                 $list->push(CheckfrontItemModel::create()->fromCheckfront($item));
             }
         }
     }
     return $list;
 }
 public function current()
 {
     return CheckfrontItemModel::create_from_checkfront(parent::current(), $this->action);
 }
 /**
  * @param CheckfrontItemModel $item
  * @param array $addOrUpdateParams
  * @return CheckfrontAPIResponse
  */
 public function addItemToSession(CheckfrontItemModel $item, array $addOrUpdateParams = array())
 {
     $params = array_merge(array('session_id' => CheckfrontModule::session()->getID()), $item->toCheckfront('booking/session'), $addOrUpdateParams);
     $response = new CheckfrontAPIResponse($this()->post(new CheckfrontAPIRequest('booking/session', $params)));
     return $response;
 }
 /**
  * @return ArrayList of CheckfrontBookableItems if this.items is set (empty ArrayList if not).
  */
 public function getItems()
 {
     return new ArrayList(array_map(function ($item) {
         return CheckfrontItemModel::create_from_checkfront($item);
     }, isset($this['items']) ? $this['items'] : array()));
 }