<?php

/**
 * @file
 * Flag actions install file.
 */

/**
 * Implementation of hook_install().
 */
function flag_actions_install() {
  drupal_install_schema('flag_actions');
}

/**
 * Implementation of hook_uninstall().
 */
function flag_actions_uninstall() {
  drupal_uninstall_schema('flag_actions');
}

/**
 * Implementation of hook_schema().
 */
function flag_actions_schema() {
  $schema = array();

  $schema['flag_actions'] = array(
    'fields' => array(
      'aid' => array(
        'type' => 'serial',
        'not null' => TRUE,
        'disp-width' => '5',
      ),
      'fid' => array(
        'type' => 'int',
        'size' => 'small',
        'not null' => FALSE,
        'disp-width' => '5',
      ),
      'event' => array(
        'type' => 'varchar',
        'length' => '255',
        'not null' => FALSE,
      ),
      'threshold' => array(
        'type' => 'int',
        'size' => 'small',
        'not null' => TRUE,
        'default' => 0,
        'disp-width' => '5',
      ),
      'repeat_threshold' => array(
        'type' => 'int',
        'size' => 'small',
        'not null' => TRUE,
        'default' => 0,
        'disp-width' => '5',
      ),
      'callback' => array(
        'type' => 'varchar',
        'length' => '255',
        'not null' => TRUE,
        'default' => '',
      ),
      'parameters' => array(
        'type' => 'text',
        'size' => 'big',
        'not null' => TRUE,
      ),
    ),
    'primary key' => array('aid'),
  );

  return $schema;
}

/**
 * Add a "repeat_threshold" value to all existing Flag actions.
 */
function flag_actions_update_6200() {
  $ret = array();

  // Add the new repeat_threshold column.
  if (!db_column_exists('flag_actions', 'repeat_threshold')) {
    $column = array(
      'type' => 'int',
      'size' => 'small',
      'not null' => TRUE,
      'default' => 0,
      'disp-width' => '5',
    );
    db_add_field($ret, 'flag_actions', 'repeat_threshold', $column);
  }

  // Update the normal threshold column to default to 0.
  $column = array(
    'type' => 'int',
    'size' => 'small',
    'not null' => TRUE,
    'default' => 0,
    'disp-width' => '5',
  );
  db_change_field($ret, 'flag_actions', 'threshold', 'threshold', $column);

  return $ret;
}
