You are here

function heartbeat_schema in Heartbeat 8

Same name and namespace in other branches
  1. 6.4 heartbeat.install \heartbeat_schema()
  2. 6.3 heartbeat.install \heartbeat_schema()
  3. 7 heartbeat.install \heartbeat_schema()

Implements hook_schema(). ** //TODO Have not yet set export schema for CTOOLS as CTOOLS is not yet a part of Drupal 8

File

./heartbeat.install, line 43
Install, update and uninstall functions for the node module.

Code

function heartbeat_schema() {

  //  $schema['heartbeat_messages'] = array(
  //    'description' => 'Table that contains predefined messages that can be used in heartbeat views.',
  //    'fields' => array(
  //      'hid' => array(
  //        'description' => 'Primary Key: Unique heartbeat_messages event ID.',
  //        'type' => 'serial',
  //        'not null' => TRUE,
  //      ),
  //      'message_id' => array(
  //        'description' => 'The message id which is unique to identify activity.',
  //        'type' => 'varchar',
  //        'length' => 255,
  //        'not null' => FALSE,
  //        'default' => '',
  //      ),
  //      'description' => array(
  //        'description' => 'Description and help text',
  //        'type' => 'text',
  //        'not null' => FALSE,
  //        'size' => 'big'
  //      ),
  //      'message' => array(
  //        'type' => 'text',
  //        'not null' => TRUE,
  //        'size' => 'big',
  //        'description' => 'Text of log message to be passed into the ) function.',
  //        //'alias' => 'message_orig', // Internal heartbeat field/property
  //      ),
  //      'message_concat' => array(
  //        'type' => 'text',
  //        'not null' => TRUE,
  //        'size' => 'big',
  //        'description' => 'Text of translatable log message for in concatenated form.',
  //        //'alias' => 'message_concat_orig', // Internal heartbeat field/property
  //      ),
  //      'perms' => array(
  //        'type' => 'int',
  //        'unsigned' => TRUE,
  //        'not null' => FALSE,
  //        'default' => 4,
  //        'description' => 'Permissions for this message.',
  //      ),
  //      'group_type' => array(
  //        'type' => 'varchar',
  //        'length' => 20,
  //        'not null' => TRUE,
  //        'default' => 'single',
  //        'description' => 'The group type of the template',
  //      ),
  //      'concatargs' => array(
  //        'description' => 'Arguments for concatenation message.',
  //        'type' => 'blob',
  //        'serialize' => TRUE,
  //        'not null' => FALSE,
  //      ),
  //      'variables' => array(
  //        'description' => 'Variables to parse into the message (used in message).',
  //        'type' => 'blob',
  //        'serialize' => TRUE,
  //        'not null' => FALSE,
  //      ),
  //      'attachments' => array(
  //        'description' => 'Attachments on messages.',
  //        'type' => 'blob',
  //        'serialize' => TRUE,
  //        'not null' => FALSE,
  //      ),
  //    ),
  //    'primary key' => array('hid'),
  //    'indexes' => array(
  //      'message_id' => array('message_id'),
  //    ),
  //  );
  $schema['heartbeat_friendship'] = array(
    'fields' => array(
      'id' => array(
        'type' => 'serial',
        'not null' => TRUE,
      ),
      'uid' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
      ),
      'uid_target' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => FALSE,
        'default' => 0,
      ),
      'status' => array(
        'type' => 'int',
        'not null' => TRUE,
        'size' => 'tiny',
        'default' => -1,
      ),
      'created' => array(
        'type' => 'int',
        'not null' => TRUE,
      ),
    ),
    'primary key' => array(
      'id',
    ),
    'unique keys' => array(
      'uid_relation' => array(
        'uid',
        'uid_target',
      ),
    ),
  );
  $schema['heartbeat_term_usage'] = array(
    'fields' => array(
      'id' => array(
        'type' => 'serial',
        'not null' => TRUE,
      ),
      'tid' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
      ),
      'timestamp' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
      ),
    ),
    'primary key' => array(
      'id',
    ),
    'unique keys' => array(
      'tid_use' => array(
        'tid',
        'timestamp',
      ),
    ),
  );

  //    'indexes' => array(
  //      'created' => array('created'),
  //    ),
  //  );
  //  $schema['heartbeat_activity']['fields']['in_group'] = array(
  //    'type' => 'int',
  //    'not null' => TRUE,
  //    'size' => 'big',
  //    'description' => 'Indicates whether the activity is related to a group.',
  //    'default' => 0,
  //  );
  //  $schema['heartbeat_activity']['indexes']['in_group'] = array('in_group');
  //  $schema['heartbeat_user_templates'] = heartbeat_install_table_user_templates();
  //  $schema['heartbeat_stream'] = array(
  //    'description' => 'Table that contains heartbeat streams.',
  //    // CTools export definitions.

  ////    'export' => array(

  ////      'key' => 'class',

  ////      'key name' => 'name',

  ////      'primary key' => 'class',

  ////      'bulk export' => TRUE,

  ////      'identifier' => 'heartbeatstream',

  ////      'object' => 'HeartbeatStreamConfig',

  ////      'default hook' => 'heartbeat_stream_info',

  ////      'load callback' => '_heartbeat_stream_config_load',

  ////      'load all callback' => '_heartbeat_stream_config_load_all',

  ////      'can disable' => TRUE,

  ////      'api' => array(

  ////        'owner' => 'heartbeat',

  ////        'api' => 'heartbeat',

  ////        'minimum_version' => 1,

  ////        'current_version' => 1,

  ////      ),

  ////    ),

  //    'fields' => array(
  //      //TODO find out if we need id or vid fields in this table

  ////      'id' => array(

  ////        'type' => 'serial',

  ////        'not null' => TRUE,

  ////        'description' => 'Primary Key: Unique heartbeat_activity event ID.',

  ////      ),

  ////      'vid' => array(

  ////        'type' => 'int',

  ////        'not null' => TRUE,

  ////        'description' => 'The Revision ID',

  ////      ),

  //      'class' => array(
  //        'type' => 'varchar',
  //        'length' => 100,
  //        'not null' => TRUE,
  //        'default' => '',
  //        'description' => 'Class of the stream to load.',
  //      ),
  //      'real_class' => array(
  //        'type' => 'varchar',
  //        'length' => 100,
  //        'not null' => TRUE,
  //        'default' => '',
  //        'description' => 'Real Class of the stream to load.',
  //      ),
  //      'name' => array(
  //        'type' => 'varchar',
  //        'length' => 100,
  //        'not null' => TRUE,
  //        'default' => '',
  //        'description' => 'Name of the stream. Cloned streams will have the same object but same cla

  //ss.',

  //      ),
  //      'module' => array(
  //        'type' => 'varchar',
  //        'length' => 100,
  //        'not null' => TRUE,
  //        'default' => '',
  //        'description' => 'The module that defines the class and where the query builder is located.',
  //      ),
  //      'title' => array(
  //        'type' => 'varchar',
  //        'length' => 100,
  //        'not null' => TRUE,
  //        'default' => '',
  //        'description' => 'Human readable name of the stream.',
  //      ),
  //      'path' => array(
  //        'type' => 'varchar',
  //        'length' => 250,
  //        'not null' => TRUE,
  //        'default' => '',
  //        'description' => 'Path to the stream object.',
  //      ),
  //      'settings' => array(
  //        'description' => 'Serialized settings for this stream.',
  //        'type' => 'blob',
  //        'serialize' => TRUE,
  //        'not null' => FALSE,
  //      ),
  //      'variables' => array(
  //        'description' => 'Variables to parse into the message (used in message).',
  //        'type' => 'blob',
  //        'serialize' => TRUE,
  //        'not null' => FALSE,
  //      ),
  //    ),
  //    'primary key' => array('class'),
  //    'indexes' => array(
  //      'name' => array('name'),
  //    ),
  //  );

  //TODO determine if these foreign keys are to be added

  //  db_add_unique_key('heartbeat_act/ivity', 'uaid', array('uaid'));
  //  db_add_unique_key('heartbeat_activity', 'uaid_uid', array('uaid', 'uid'));
  //  db_add_unique_key('heartbeat_activity', 'uaid_nid', array('uaid', 'nid'));
  //  db_add_unique_key('heartbeat_activity', 'uaid_uid_nid', array('uaid', 'uid', 'nid'))
  return $schema;
}