You are here

function rooms_availability_schema in Rooms - Drupal Booking for Hotels, B&Bs and Vacation Rentals 7

Implements hook_schema().

File

modules/rooms_availability/rooms_availability.install, line 13
Install for Rooms Availability module - sets up the main Rooms Availability table

Code

function rooms_availability_schema() {
  $schema = array();
  $schema['rooms_availability'] = array(
    'description' => 'The main table holiding availability information',
    'fields' => array(
      'unit_id' => array(
        'description' => 'Identifier for a room.',
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
      ),
      'year' => array(
        'description' => 'The calendar year for which this availability row is relevant',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'month' => array(
        'description' => 'The month for which this availability row is relevant',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd1' => array(
        'description' => 'Month Day 1',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd2' => array(
        'description' => 'Month Day 2',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd3' => array(
        'description' => 'Month Day 3',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd4' => array(
        'description' => 'Month Day 4',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd5' => array(
        'description' => 'Month Day 5',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd6' => array(
        'description' => 'Month Day 6',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd7' => array(
        'description' => 'Month Day 7',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd8' => array(
        'description' => 'Month Day 8',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd9' => array(
        'description' => 'Month Day 9',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd10' => array(
        'description' => 'Month Day 10',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd11' => array(
        'description' => 'Month Day 11',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd12' => array(
        'description' => 'Month Day 12',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd13' => array(
        'description' => 'Month Day 13',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd14' => array(
        'description' => 'Month Day 14',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd15' => array(
        'description' => 'Month Day 15',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd16' => array(
        'description' => 'Month Day 16',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd17' => array(
        'description' => 'Month Day 17',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd18' => array(
        'description' => 'Month Day 18',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd19' => array(
        'description' => 'Month Day 19',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd20' => array(
        'description' => 'Month Day 20',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd21' => array(
        'description' => 'Month Day 21',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd22' => array(
        'description' => 'Month Day 22',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd23' => array(
        'description' => 'Month Day 23',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd24' => array(
        'description' => 'Month Day 24',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd25' => array(
        'description' => 'Month Day 25',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd26' => array(
        'description' => 'Month Day 26',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd27' => array(
        'description' => 'Month Day 27',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd28' => array(
        'description' => 'Month Day 28',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd29' => array(
        'description' => 'Month Day 29',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd30' => array(
        'description' => 'Month Day 30',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd31' => array(
        'description' => 'Month Day 31',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
    ),
    'indexes' => array(
      'unit_id' => array(
        'unit_id',
      ),
      'year' => array(
        'year',
      ),
      'month' => array(
        'month',
      ),
    ),
    'unique keys' => array(
      'month_key' => array(
        'unit_id',
        'year',
        'month',
      ),
    ),
    'foreign keys' => array(
      'unit_id' => array(
        'table' => 'rooms_units',
        'columns' => array(
          'unit_id' => 'unit_id',
        ),
      ),
    ),
  );
  $schema['rooms_booking_locks'] = array(
    'description' => 'Booking states held in this table can be set to lock - so they cannot be deleted',
    'fields' => array(
      'unit_id' => array(
        'description' => 'Identifier for a booking unit.',
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
      ),
      'state' => array(
        'description' => 'The state for a booking unit.',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'locked' => array(
        'description' => 'Whether the state is locked or not',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '1',
      ),
    ),
  );
  return $schema;
}