<?php
// $Id$
/**
 * Implementation of hook_install().
 */
function textbook_companion_install()
  {
    // Create tables.
    drupal_install_schema('textbook_companion');
    variable_set('textbook_companion_emails', '');
    variable_set('textbook_companion_from_email', '');
    variable_set('textbook_companion_source_extensions', '');
    variable_set('textbook_companion_dependency_extensions', '');
    variable_set('textbook_companion_result_extensions', '');
    variable_set('textbook_companion_xcos_extensions', '');
  }
/**
 * Implementation of hook_uninstall().
 */
function textbook_companion_uninstall()
  {
    // Remove tables.
    drupal_uninstall_schema('textbook_companion');
    // Remove variables
    variable_del('textbook_companion_emails');
    variable_del('textbook_companion_from_email');
    variable_del('textbook_companion_source_extensions');
    variable_del('textbook_companion_dependency_extensions');
    variable_del('textbook_companion_result_extensions');
    variable_del('textbook_companion_xcos_extensions');
  }
/**
 * Implementation of hook_schema().
 */
function textbook_companion_schema()
  {
    /* proposal */
    $schema['textbook_companion_proposal'] = array(
        'description' => t('TODO: please describe this table!'),
        'fields' => array(
            'id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'serial',
                'not null' => TRUE
            ),
            'uid' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'approver_uid' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'full_name' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '50',
                'not null' => TRUE
            ),
            'mobile' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '15',
                'not null' => TRUE
            ),
            'how_project' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '50',
                'not null' => TRUE
            ),
            'course' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '50',
                'not null' => TRUE
            ),
            'branch' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '50',
                'not null' => TRUE
            ),
            'university' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '100',
                'not null' => TRUE
            ),
            'faculty' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '100',
                'not null' => TRUE
            ),
            'reviewer' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '100',
                'not null' => TRUE
            ),
            'completion_date' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'creation_date' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'approval_date' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'proposal_status' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'message' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'text',
                'size' => 'medium',
                'not null' => TRUE
            )
        ),
        'primary key' => array(
            'id'
        ),
        'unique keys' => array(
            'id' => array(
                'id'
            )
        )
    );
    /* book preference */
    $schema['textbook_companion_preference'] = array(
        'description' => t('TODO: please describe this table!'),
        'fields' => array(
            'id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'serial',
                'not null' => TRUE
            ),
            'proposal_id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'pref_number' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'book' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '100',
                'not null' => TRUE
            ),
            'author' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '100',
                'not null' => TRUE
            ),
            'isbn' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '25',
                'not null' => TRUE
            ),
            'publisher' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '50',
                'not null' => TRUE
            ),
            'edition' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '2',
                'not null' => TRUE
            ),
            'year' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'category' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'approval_status' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            )
        ),
        'primary key' => array(
            'id'
        ),
        'unique keys' => array(
            'id' => array(
                'id'
            )
        )
    );
    /* chapter */
    $schema['textbook_companion_chapter'] = array(
        'description' => t('TODO: please describe this table!'),
        'fields' => array(
            'id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'serial',
                'not null' => TRUE
            ),
            'preference_id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'number' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'name' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '255',
                'not null' => TRUE
            )
        ),
        'primary key' => array(
            'id'
        )
    );
    /* examples */
    $schema['textbook_companion_example'] = array(
        'description' => t('TODO: please describe this table!'),
        'fields' => array(
            'id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'serial',
                'not null' => TRUE
            ),
            'chapter_id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'approver_uid' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'number' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '10',
                'not null' => TRUE
            ),
            'caption' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '255',
                'not null' => TRUE
            ),
            'approval_date' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'approval_status' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'timestamp' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            )
        ),
        'primary key' => array(
            'id'
        )
    );
    /* example files */
    $schema['textbook_companion_example_files'] = array(
        'description' => t('TODO: please describe this table!'),
        'fields' => array(
            'id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'serial',
                'not null' => TRUE
            ),
            'example_id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'filename' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '255',
                'not null' => TRUE
            ),
            'filepath' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '500',
                'not null' => TRUE
            ),
            'filemime' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '255',
                'not null' => TRUE
            ),
            'filesize' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'filetype' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '1',
                'not null' => TRUE
            ),
            'caption' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '100',
                'not null' => TRUE
            ),
            'timestamp' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            )
        ),
        'primary key' => array(
            'id'
        )
    );
    /* dependency files */
    $schema['textbook_companion_dependency_files'] = array(
        'description' => t('TODO: please describe this table!'),
        'fields' => array(
            'id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'serial',
                'not null' => TRUE
            ),
            'preference_id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'filename' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '255',
                'not null' => TRUE
            ),
            'filepath' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '500',
                'not null' => TRUE
            ),
            'filemime' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '255',
                'not null' => TRUE
            ),
            'filesize' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'caption' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '100',
                'not null' => TRUE
            ),
            'description' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'text',
                'size' => 'medium',
                'not null' => TRUE
            ),
            'timestamp' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            )
        ),
        'primary key' => array(
            'id'
        )
    );
    /* example - dependency files links */
    $schema['textbook_companion_example_dependency'] = array(
        'description' => t('TODO: please describe this table!'),
        'fields' => array(
            'id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'serial',
                'not null' => TRUE
            ),
            'example_id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'dependency_id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'approval_status' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'timestamp' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            )
        ),
        'primary key' => array(
            'id'
        )
    );
    $schema['textbook_companion_notes'] = array(
        'description' => t('TODO: please describe this table!'),
        'fields' => array(
            'id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'serial',
                'not null' => TRUE
            ),
            'preference_id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'notes' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'text',
                'size' => 'medium',
                'not null' => TRUE
            )
        ),
        'primary key' => array(
            'id'
        )
    );
    $schema['textbook_companion_feedback'] = array(
        'description' => t('TODO: please describe this table!'),
        'fields' => array(
            'id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'serial',
                'not null' => TRUE
            ),
            'example_id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'uid' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'feedback' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'text',
                'size' => 'medium',
                'not null' => TRUE
            ),
            'ip_address' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '16',
                'not null' => TRUE
            ),
            'timestamp' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            )
        ),
        'primary key' => array(
            'id'
        )
    );
    return $schema;
  }