function opigno_module_schema in Opigno module 8
Same name and namespace in other branches
- 3.x opigno_module.install \opigno_module_schema()
Implements hook_schema().
File
- ./
opigno_module.install, line 20 - Opigno module app install/update functionality.
Code
function opigno_module_schema() {
// Create the opigno module relationship table.
$schema['opigno_module_relationship'] = [
'description' => 'Table storing what activities belong to what modules',
'fields' => [
'omr_id' => [
'type' => 'serial',
'size' => 'normal',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => 'The primary identifier of this relationship.',
],
'omr_pid' => [
'type' => 'int',
'size' => 'normal',
'unsigned' => TRUE,
'not null' => FALSE,
'default' => NULL,
'description' => 'The parent relationship of this relationship.',
],
'parent_id' => [
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => 'The Module that this activity belongs to.',
],
'parent_vid' => [
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => 'The Module version that this activity belongs to.',
],
'child_id' => [
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => 'The Activity ID.',
],
'child_vid' => [
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => 'The Activity version ID.',
],
'activity_status' => [
'type' => 'int',
'size' => 'tiny',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 1,
'description' => 'The status of the Activity in this Module. 0=random, 1=always',
],
'weight' => [
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => 'The weight of this Activity in the Module.',
],
'max_score' => [
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => 'The max score of the Activity in this Module.',
],
'auto_update_max_score' => [
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'default' => 0,
'description' => 'Boolean indicating whether updates to the Activity will update the max score of the Activity in the Module.',
],
'group_id' => [
'type' => 'int',
'size' => 'normal',
'description' => "Training ID",
],
],
'primary key' => [
'omr_id',
],
'unique keys' => [
'parent_child' => [
'parent_id',
'parent_vid',
'child_id',
'child_vid',
],
],
'indexes' => [
'parent_vid' => [
'parent_vid',
],
'child_vid' => [
'child_vid',
],
'parent_id' => [
'parent_id',
],
'child_id' => [
'child_id',
],
'group_id' => [
'group_id',
],
],
];
$schema['opigno_module_result_options'] = [
'description' => 'Table storing result options for module.',
'fields' => [
'option_id' => [
'type' => 'serial',
'size' => 'normal',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => 'The primary identifier for the range.',
],
'module_id' => [
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => 'Module identifier.',
],
'module_vid' => [
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => 'Module revision identifier.',
],
'option_start' => [
'type' => 'int',
'unsigned' => TRUE,
'default' => 0,
'description' => 'Score range low value.',
],
'option_end' => [
'type' => 'int',
'unsigned' => TRUE,
'default' => 0,
'description' => 'Score range high value.',
],
'option_name' => [
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'description' => 'The name of this range.',
],
'option_summary' => [
'type' => 'text',
'description' => 'The text to show when this range is met.',
],
'option_summary_format' => [
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'description' => 'Text format of the range text.',
],
],
'primary key' => [
'option_id',
],
'indexes' => [
'module_id' => [
'module_id',
'module_vid',
],
],
];
$schema['opigno_module_badges'] = [
'description' => 'Opigno Module Badges',
'fields' => [
'id' => [
'type' => 'serial',
'not null' => TRUE,
],
'uid' => [
'description' => 'User ID',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
],
'gid' => [
'description' => 'Training ID',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
],
'entity_id' => [
'description' => 'Entity ID',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
],
'typology' => [
'description' => 'Typology',
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
],
'badges' => [
'description' => 'Badges count',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
],
],
'primary key' => [
'id',
],
'indexes' => [
'uid' => [
'uid',
],
'gid' => [
'gid',
],
'entity_id' => [
'entity_id',
],
'typology' => [
'typology',
],
],
'foreign keys' => [
'users' => [
'uid' => 'uid',
],
'entity_id' => [
'entity_id',
],
'typology' => [
'typology',
],
],
];
// Create table for skills statistic.
$schema['opigno_skills_statistic'] = [
'description' => 'Opigno Skills Statistic',
'fields' => [
'id' => [
'type' => 'serial',
'not null' => TRUE,
],
'tid' => [
'description' => 'Term ID',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
],
'uid' => [
'description' => 'User ID',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
],
'score' => [
'description' => 'Score',
'type' => 'int',
'unsigned' => TRUE,
'not null' => FALSE,
],
'progress' => [
'description' => 'Progress',
'type' => 'int',
'unsigned' => TRUE,
'not null' => FALSE,
],
'stage' => [
'description' => 'Stage',
'type' => 'int',
'unsigned' => TRUE,
'not null' => FALSE,
],
],
'primary key' => [
'id',
],
];
return $schema;
}