<?php

function opencase_cases_update_8025() {
  //check if the table exists first.  If not, then create the entity.
  if(!db_table_exists('oc_case_provision')) {
    \Drupal::entityTypeManager()->clearCachedDefinitions();
    \Drupal::entityDefinitionUpdateManager()
      ->installEntityType(\Drupal::entityTypeManager()->getDefinition('oc_case_provision'));
  }
}

function opencase_cases_update_8026() {
    $storage_definition =  \Drupal\Core\Field\BaseFieldDefinition::create('entity_reference')
      ->setLabel(t('Role'))
      ->setSetting('target_type', 'taxonomy_term')
      ->setSetting('handler_settings', ['target_bundles' => ['oc_case_provider_role' => 'oc_case_provider_role']])
      ->setSetting('handler', 'default')
      ->setTranslatable(TRUE)
      ->setCardinality(1)
      ->setDisplayConfigurable("view", true)
      ->setDisplayConfigurable("form", true)
      ->setRequired(FALSE);
  \Drupal::entityDefinitionUpdateManager()
    ->installFieldStorageDefinition('oc_case_provider_role', 'oc_case_provision', 'oc_case_provision', $storage_definition);
}

function opencase_cases_update_8027() {
  //check if the table exists first.  If not, then create the entity.
  if(!db_table_exists('oc_case_fee')) {
    \Drupal::entityTypeManager()->clearCachedDefinitions();
    \Drupal::entityDefinitionUpdateManager()
      ->installEntityType(\Drupal::entityTypeManager()->getDefinition('oc_case_fee'));
  }
}

function opencase_cases_update_8028() {
    $storage_definition =  \Drupal\Core\Field\BaseFieldDefinition::create('decimal')
      ->setLabel(t('Amount'))
      ->setRevisionable(TRUE)
      ->setSettings([
        'prefix' => '£',
      ])
      ->SetDisplayConfigurable("form", true)
      ->SetDisplayConfigurable("view", true);
  \Drupal::entityDefinitionUpdateManager()
    ->installFieldStorageDefinition('amount', 'oc_case_fee', 'oc_case_fee', $storage_definition);
    $storage_definition =  \Drupal\Core\Field\BaseFieldDefinition::create('entity_reference')
      ->setLabel(t('Fee Category'))
      ->setSetting('target_type', 'taxonomy_term')
      ->setSetting('handler_settings', ['target_bundles' => ['oc_fee_category' => 'oc_fee_category']])
      ->setSetting('handler', 'default')
      ->setTranslatable(TRUE)
      ->setCardinality(1)
      ->setDisplayConfigurable("view", true)
      ->setDisplayConfigurable("form", true)
      ->setRequired(FALSE);
  \Drupal::entityDefinitionUpdateManager()
    ->installFieldStorageDefinition('oc_fee_category', 'oc_case_fee', 'oc_case_fee', $storage_definition);
}

function opencase_cases_update_8029() {
    $storage_definition =  \Drupal\Core\Field\BaseFieldDefinition::create('string_long')
      ->setRevisionable(TRUE)
      ->setLabel(t('Notes'))
      ->setSettings(array(
        'default_value' => '',
        'max_length' => 255,
        'text_processing' => 0,
      ))
      ->setDisplayConfigurable('form', true)
      ->setDisplayConfigurable('view', true);
  \Drupal::entityDefinitionUpdateManager()
    ->installFieldStorageDefinition('notes', 'oc_case', 'oc_case', $storage_definition);
}

function opencase_cases_update_8030() {
    $storage_definition =  \Drupal\Core\Field\BaseFieldDefinition::create('decimal')
    ->setLabel(t('Total Fee'))
    ->setRevisionable(TRUE)
    ->setSettings([
      'prefix' => '£',
    ])
    ->SetDisplayConfigurable("view", true);
  \Drupal::entityDefinitionUpdateManager()
    ->installFieldStorageDefinition('total_fee', 'oc_case', 'oc_case', $storage_definition);
}