<?php

/*
 * @file
 *
 */

use Drupal\Core\Url;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\Render\Element;
use Drupal\Core\Entity\EntityInterface;
use Drupal\node\Entity\Node;

const NODE_TYPE_COURSE = 'pe_course';

/**
 * Implements hook_help().
 */
function pe_course_help($route_name, RouteMatchInterface $route_match) {
  switch ($route_name) {
    case 'help.page.pe_course':
      $output = '';
      $output .= '<h3>' . t('About') . '</h3>';
      $output .= '<p>' . t('TODO') . '</p>';
      return $output;
  }
}

/**
 * Implements hook_ENTITY_TYPE_presave() for node entities.
 */
function pe_course_node_presave(EntityInterface $node) {
  pe_course_build_book($node);
}

/**
 * Create book for course.
 *
 * @param \Drupal\Core\Entity\EntityInterface $entity
 */
function pe_course_build_book(EntityInterface $entity) {
  if ($entity->bundle() == NODE_TYPE_COURSE) {
    if (empty($entity->get('field_course_book')->target_id)) {
      $node = Node::create([
        'type' => 'book',
        'title' => '[BOOK]: ' . $entity->getTitle(),
        'uid' => '1',
        'status' => 1,
      ]);
      $node->body->generateSampleItems(1);
      $node->book['bid'] = 'new';
      $node->save();

      // Update the course book reference field.
      $entity->field_course_book->target_id = $node->id();
    }
  }
}
