<?php

/**
 * @file
 * Installation functions for History module.
 */

use Drupal\Core\Database\Database;

/**
 * Implements hook_schema().
 */
function history_schema() {
  $schema['history'] = [
    'description' => 'A record of which {users} have read which {node}s.',
    'fields' => [
      'uid' => [
        'description' => 'The {users}.uid that read the {node} nid.',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ],
      'nid' => [
        'description' => 'The {node}.nid that was read.',
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
      ],
      'timestamp' => [
        'description' => 'The Unix timestamp at which the read occurred.',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ],
    ],
    'primary key' => ['uid', 'nid'],
    'indexes' => [
      'nid' => ['nid'],
    ],
  ];

  return $schema;
}

/**
 * Change {history}.nid to an unsigned int in order to match {node}.nid.
 */
function history_update_8101() {
  $schema = Database::getConnection()->schema();
  $schema->dropPrimaryKey('history');
  $schema->dropIndex('history', 'nid');
  $schema->changeField('history', 'nid', 'nid', [
    'description' => 'The {node}.nid that was read.',
    'type' => 'int',
    'unsigned' => TRUE,
    'not null' => TRUE,
    'default' => 0,
  ]);
  $schema->addPrimaryKey('history', ['uid', 'nid']);
  $spec = [
    'description' => 'A record of which {users} have read which {node}s.',
    'fields' => [
      'uid' => [
        'description' => 'The {users}.uid that read the {node} nid.',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ],
      'nid' => [
        'description' => 'The {node}.nid that was read.',
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
      ],
      'timestamp' => [
        'description' => 'The Unix timestamp at which the read occurred.',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ],
    ],
    'primary key' => ['uid', 'nid'],
    'indexes' => [
      'nid' => ['nid'],
    ],
  ];
  $schema->addIndex('history', 'nid', ['nid'], $spec);
}
