<?php
// $Id$
/**
 * Implementation of hook_install().
 */
function lab_migration_install()
  {
    // Create tables.
    drupal_install_schema('lab_migration');
    variable_set('lab_migration_emails', '');
    variable_set('lab_migration_from_email', '');
    variable_set('lab_migration_source_extensions', '');
    variable_set('lab_migration_dependency_extensions', '');
    variable_set('lab_migration_result_extensions', '');
    variable_set('lab_migration_xcos_extensions', '');
    // create uploads folder
    $upload_path = $_SERVER['DOCUMENT_ROOT'] . base_path() . 'dwsim_uploads/lab_migration_uploads';
    if (!is_dir($upload_path))
        mkdir($upload_path);
    if (!is_dir($upload_path . '/latex'))
        mkdir($upload_path . '/latex');
    if (!is_dir($upload_path . '/DEPENDENCIES'))
        mkdir($upload_path . '/DEPENDENCIES');
  }
/**
 * Implementation of hook_uninstall().
 */
function lab_migration_uninstall()
  {
    // Remove tables.
    drupal_uninstall_schema('lab_migration');
    // Remove variables
    variable_del('lab_migration_emails');
    variable_del('lab_migration_from_email');
    variable_del('lab_migration_source_extensions');
    variable_del('lab_migration_dependency_extensions');
    variable_del('lab_migration_result_extensions');
    variable_del('lab_migration_xcos_extensions');
  }
/**
 * Implementation of hook_schema().
 */
function lab_migration_schema()
  {
    /* proposal */
    $schema['lab_migration_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
            ),
            'solution_provider_uid' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'name_title' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '5',
                'not null' => TRUE
            ),
            'name' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '255',
                'not null' => TRUE
            ),
            'contact_ph' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '15',
                'not null' => TRUE
            ),
            'department' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '255',
                'not null' => TRUE
            ),
            'university' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '255',
                'not null' => TRUE
            ),
            'lab_title' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '255',
                '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
            ),
            'solution_status' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'solution_display' => 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
            ),
            'solution_date' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'expected_completion_date' => 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
            ),
            'solution_provider_name_title' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '5',
                'not null' => TRUE
            ),
            'solution_provider_name' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '255',
                'not null' => TRUE
            ),
            'solution_provider_contact_ph' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '15',
                'not null' => TRUE
            ),
            'solution_provider_department' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '255',
                'not null' => TRUE
            ),
            'solution_provider_university' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '255',
                'not null' => TRUE
            )
        ),
        'primary key' => array(
            'id'
        )
    );
    /* experiment */
    $schema['lab_migration_experiment'] = 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
            ),
            'number' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'int',
                'not null' => TRUE
            ),
            'title' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'varchar',
                'length' => '500',
                'not null' => TRUE
            )
        ),
        'primary key' => array(
            'id'
        )
    );
    /* solution */
    $schema['lab_migration_solution'] = array(
        'description' => t('TODO: please describe this table!'),
        'fields' => array(
            'id' => array(
                'description' => t('TODO: please describe this field!'),
                'type' => 'serial',
                'not null' => TRUE
            ),
            'experiment_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
            ),
            'code_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'
        )
    );
    /* solution files */
    $schema['lab_migration_solution_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
            ),
            'solution_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'
        )
    );
    /* depedency files */
    $schema['lab_migration_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
            ),
            'proposal_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'
        )
    );
    /* dependency files - links */
    $schema['lab_migration_solution_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
            ),
            'solution_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
            )
        ),
        'primary key' => array(
            'id'
        )
    );
    /* notes */
    $schema['lab_migration_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
            ),
            'proposal_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'
        )
    );
    return $schema;
  }