function uc_recurring_schema in UC Recurring Payments and Subscriptions 6.2
Same name and namespace in other branches
- 6 uc_recurring.install \uc_recurring_schema()
- 7.2 uc_recurring.install \uc_recurring_schema()
Implementation hook_schema().
File
- ./
uc_recurring.install, line 11 - Installs the Recurring Fee module.
Code
function uc_recurring_schema() {
$schema = array();
$schema['uc_recurring_users'] = array(
'description' => t('Data for recurring fees attached to users/orders scheduled to be charged.'),
'fields' => array(
'rfid' => array(
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'uid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'fee_handler' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
'fee_title' => array(
'description' => t('The text shown on invoices for this recurring fee.'),
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
'next_charge' => array(
'description' => t('The timestamp when the next charge should be performed.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'fee_amount' => array(
'description' => t('The amount of the recurring fee.'),
'type' => 'numeric',
'precision' => 15,
'scale' => 3,
'not null' => TRUE,
'default' => 0.0,
),
'regular_interval' => array(
'description' => t('The amount of time between charges.'),
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '0',
),
'remaining_intervals' => array(
'description' => t('The remaining number of times the fee should be charged.'),
'type' => 'int',
'size' => 'small',
'unsigned' => FALSE,
'not null' => TRUE,
'default' => -1,
),
'charged_intervals' => array(
'description' => t('Counter for how many times the fee has been charged.'),
'type' => 'int',
'size' => 'small',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 1,
),
'order_id' => array(
'description' => t('The order ID.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'data' => array(
'description' => t('Serialized array of extra data.'),
'type' => 'text',
'serialize' => TRUE,
),
'created' => array(
'description' => t('Timestamp for when the fee was first attached to the user.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'attempts' => array(
'description' => t('How many times have we attempted to process this payment.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'pfid' => array(
'description' => t('The product fee this recurring fee was created from.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => FALSE,
'default' => 0,
),
'order_product_id' => array(
'description' => 'The product ID.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => FALSE,
'default' => 0,
),
'own_handler' => array(
'description' => t('Indicate if recurring fee is done by own handler, such as Paypal.'),
'type' => 'int',
'size' => 'small',
'unsigned' => TRUE,
'not null' => FALSE,
'default' => 0,
),
'status' => array(
'description' => 'The status of the recurring fee, e.g. "active" or "expired"',
'type' => 'int',
'not null' => TRUE,
'default' => 0,
),
'module' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
),
'primary key' => array(
'rfid',
),
);
$schema['uc_recurring_orders'] = array(
'description' => t('Data for handling recurring relationships between orders.'),
'fields' => array(
'original_order_id' => array(
'description' => t('The original order ID.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'renewal_order_id' => array(
'description' => t('The recurring order ID.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
),
);
$schema['uc_recurring_schedule'] = array(
'description' => t('Data for handling more complex recurring schedules.'),
'fields' => array(
'pfid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
),
'interval_num' => array(
'description' => t('The number in the recurring schedule to.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
),
'fee_amount' => array(
'description' => t('The amount of the schedule fee to charge.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
),
'next_interval' => array(
'description' => t('The amount of time before next charge.'),
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '0',
),
'rfid' => array(
'description' => t('The specific id of the recurring fee to effect, NULL to effect all recurring fees.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => FALSE,
),
),
'primary key' => array(
'pfid',
'interval_num',
),
);
$schema['uc_recurring_extensions'] = array(
'description' => t('Data for handling extensions to recurring fees.'),
'fields' => array(
'pfid' => array(
'description' => t('The schedule ID that this extension relates to.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => FALSE,
'default' => NULL,
),
'rebill_attempt' => array(
'description' => t('The rebill attempt number.'),
'type' => 'int',
'size' => 'small',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'time_to_extend' => array(
'description' => t('Time in seconds to extend a recurring fee before next charge.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 1,
),
),
);
return $schema;
}