use vars qw(@ISA @EXPORT_OK $DEBUG $setup_hack %dbdef_cache);
use subs qw(reload_dbdef);
use Exporter;
-use DBIx::DBSchema 0.43; #0.43 for foreign keys
+use DBIx::DBSchema 0.44; #for foreign keys with MATCH / ON DELETE/UPDATE
use DBIx::DBSchema::Table;
use DBIx::DBSchema::Column;
use DBIx::DBSchema::Index;
my $char_d = 80; #default maxlength for text fields
#my(@date_type) = ( 'timestamp', '', '' );
- my @date_type = ( 'int', 'NULL', '' );
+ my @date_type = ( 'int', 'NULL', '' );
my @perl_type = ( 'text', 'NULL', '' );
my @money_type = ( 'decimal', '', '10,2' );
my @money_typen = ( 'decimal', 'NULL', '10,2' );
],
},
+ 'cust_event_fee' => {
+ 'columns' => [
+ 'eventfeenum', 'serial', '', '', '', '',
+ 'eventnum', 'int', '', '', '', '',
+ 'billpkgnum', 'int', 'NULL', '', '', '',
+ 'feepart', 'int', '', '', '', '',
+ 'nextbill', 'char', 'NULL', 1, '', '',
+ ],
+ 'primary_key' => 'eventfeenum', # I'd rather just use eventnum
+ 'unique' => [ [ 'billpkgnum' ], [ 'eventnum' ] ], # one-to-one link
+ 'index' => [ [ 'feepart' ] ],
+ 'foreign_keys' => [
+ { columns => [ 'eventnum' ],
+ table => 'cust_event',
+ },
+ { columns => [ 'billpkgnum' ],
+ table => 'cust_bill_pkg',
+ },
+ { columns => [ 'feepart' ],
+ table => 'part_fee',
+ },
+ ],
+ },
+
'cust_bill_pkg' => {
'columns' => [
'billpkgnum', 'serial', '', '', '', '',
'freq', 'varchar', 'NULL', $char_d, '', '',
'quantity', 'int', 'NULL', '', '', '',
'hidden', 'char', 'NULL', 1, '', '',
+ 'feepart', 'int', 'NULL', '', '', '',
],
'primary_key' => 'billpkgnum',
'unique' => [],
table => 'part_pkg',
references => [ 'pkgpart' ],
},
+ { columns => [ 'feepart' ],
+ table => 'part_fee',
+ },
],
},
'format', 'char', 'NULL', 1, '', '',
'classnum', 'int', 'NULL', '', '', '',
'duration', 'int', 'NULL', '', 0, '',
- 'phonenum', 'varchar', 'NULL', 25, '', '',
+ 'phonenum', 'varchar', 'NULL', 255, '', '', # has to hold a service label
'accountcode', 'varchar', 'NULL', 20, '', '',
'startdate', @date_type, '', '',
'regionname', 'varchar', 'NULL', $char_d, '', '',
{ columns => [ 'billpkgnum' ],
table => 'cust_bill_pkg',
},
- { columns => [ 'pkgnum' ],
- table => 'cust_pkg',
- },
- { columns => [ 'invnum' ],
- table => 'cust_bill',
- },
+ #{ columns => [ 'pkgnum' ],
+ # table => 'cust_pkg',
+ #},
+ #{ columns => [ 'invnum' ],
+ # table => 'cust_bill',
+ #},
{ columns => [ 'classnum' ],
table => 'usage_class',
},
'cust_bill_pkg_display' => {
'columns' => [
- 'billpkgdisplaynum', 'serial', '', '', '', '',
+ 'billpkgdisplaynum', 'serial', '', '', '', '',
'billpkgnum', 'int', '', '', '', '',
'section', 'varchar', 'NULL', $char_d, '', '',
#'unitsetup', @money_typen, '', '', #override the linked real one?
],
},
+ 'cust_bill_pkg_fee' => {
+ 'columns' => [
+ 'billpkgfeenum', 'serial', '', '', '', '',
+ 'billpkgnum', 'int', '', '', '', '',
+ 'base_invnum', 'int', '', '', '', '',
+ 'base_billpkgnum', 'int', 'NULL', '', '', '',
+ 'amount', @money_type, '', '',
+ ],
+ 'primary_key' => 'billpkgfeenum',
+ 'unique' => [],
+ 'index' => [ ['billpkgnum'],
+ ['base_invnum'],
+ ['base_billpkgnum'],
+ ],
+ 'foreign_keys' => [
+ { columns => [ 'billpkgnum' ],
+ table => 'cust_bill_pkg',
+ },
+ { columns => [ 'base_billpkgnum' ],
+ table => 'cust_bill_pkg',
+ references => [ 'billpkgnum' ],
+ },
+ { columns => [ 'base_invnum' ],
+ table => 'cust_bill',
+ references => [ 'invnum' ],
+ },
+ ],
+ },
+
'cust_bill_pkg_tax_location' => {
'columns' => [
'billpkgtaxlocationnum', 'serial', '', '', '', '',
{ columns => [ 'billpkgnum' ],
table => 'cust_bill_pkg',
},
- { columns => [ 'pkgnum' ],
- table => 'cust_pkg',
- },
+ #{ columns => [ 'pkgnum' ],
+ # table => 'cust_pkg',
+ #}, # taxes can apply to fees
{ columns => [ 'locationnum' ],
table => 'cust_location',
},
{ columns => [ 'invnum' ],
table => 'cust_bill_void',
},
- { columns => [ 'pkgnum' ],
- table => 'cust_pkg',
- },
+ #pkgnum 0 and -1 are used for special things
+ #{ columns => [ 'pkgnum' ],
+ # table => 'cust_pkg',
+ #},
{ columns => [ 'pkgpart_override' ],
table => 'part_pkg',
references => [ 'pkgpart' ],
'format', 'char', 'NULL', 1, '', '',
'classnum', 'int', 'NULL', '', '', '',
'duration', 'int', 'NULL', '', 0, '',
- 'phonenum', 'varchar', 'NULL', 25, '', '',
+ 'phonenum', 'varchar', 'NULL', 255, '', '',
'accountcode', 'varchar', 'NULL', 20, '', '',
'startdate', @date_type, '', '',
'regionname', 'varchar', 'NULL', $char_d, '', '',
{ columns => [ 'billpkgnum' ],
table => 'cust_bill_pkg_void',
},
- { columns => [ 'pkgnum' ],
- table => 'cust_pkg',
- },
- { columns => [ 'invnum' ],
- table => 'cust_bill',
- },
+ #{ columns => [ 'pkgnum' ],
+ # table => 'cust_pkg',
+ #},
+ #{ columns => [ 'invnum' ],
+ # table => 'cust_bill',
+ #},
{ columns => [ 'classnum' ],
table => 'usage_class',
},
'commission_agentnum', 'int', 'NULL', '', '', '', #
'commission_salesnum', 'int', 'NULL', '', '', '', #
'commission_pkgnum', 'int', 'NULL', '', '', '', #
+ 'credbatch', 'varchar', 'NULL', $char_d, '', '',
],
'primary_key' => 'crednum',
'unique' => [],
'index' => [ ['custnum'], ['_date'], ['usernum'], ['eventnum'],
- ['commission_salesnum'],
+ ['commission_salesnum'], ['credbatch'],
],
'foreign_keys' => [
{ columns => [ 'custnum' ],
'stateid_state', 'varchar', 'NULL', $char_d, '', '',
'national_id', 'varchar', 'NULL', $char_d, '', '',
'birthdate' ,@date_type, '', '',
- 'spouse_birthdate' ,@date_type, '', '',
- 'anniversary_date' ,@date_type, '', '',
+ 'spouse_last', 'varchar', 'NULL', 2*$char_d, '', '',
+ 'spouse_first', 'varchar', 'NULL', $char_d, '', '',
+ 'spouse_birthdate', @date_type, '', '',
+ 'anniversary_date', @date_type, '', '',
'signupdate',@date_type, '', '',
'dundate', @date_type, '', '',
'company', 'varchar', 'NULL', $char_d, '', '',
[ 'referral_custnum' ],
[ 'payby' ], [ 'paydate' ],
[ 'archived' ],
+ [ 'ship_locationnum' ],
+ [ 'bill_locationnum' ],
],
'foreign_keys' => [
{ columns => [ 'agentnum' ],
],
},
- 'cust_recon' => { # (some sort of not-well understood thing for OnPac)
- 'columns' => [
- 'reconid', 'serial', '', '', '', '',
- 'recondate', @date_type, '', '',
- 'custnum', 'int' , '', '', '', '',
- 'agentnum', 'int', '', '', '', '',
- 'last', 'varchar', '', $char_d, '', '',
- 'first', 'varchar', '', $char_d, '', '',
- 'address1', 'varchar', '', $char_d, '', '',
- 'address2', 'varchar', 'NULL', $char_d, '', '',
- 'city', 'varchar', '', $char_d, '', '',
- 'state', 'varchar', 'NULL', $char_d, '', '',
- 'zip', 'varchar', 'NULL', 10, '', '',
- 'pkg', 'varchar', 'NULL', $char_d, '', '',
- 'adjourn', @date_type, '', '',
- 'status', 'varchar', 'NULL', 10, '', '',
- 'agent_custid', 'varchar', '', $char_d, '', '',
- 'agent_pkg', 'varchar', 'NULL', $char_d, '', '',
- 'agent_adjourn', @date_type, '', '',
- 'comments', 'text', 'NULL', '', '', '',
- ],
- 'primary_key' => 'reconid',
- 'unique' => [],
- 'index' => [],
- },
-
'contact_class' => {
'columns' => [
'classnum', 'serial', '', '', '', '',
'first', 'varchar', '', $char_d, '', '',
'title', 'varchar', 'NULL', $char_d, '', '', #eg Head Bottle Washer
'comment', 'varchar', 'NULL', 255, '', '',
- 'disabled', 'char', 'NULL', 1, '', '',
+ 'selfservice_access', 'char', 'NULL', 1, '', '',
+ '_password', 'varchar', 'NULL', $char_d, '', '',
+ '_password_encoding', 'varchar', 'NULL', $char_d, '', '',
+ 'disabled', 'char', 'NULL', 1, '', '',
],
'primary_key' => 'contactnum',
'unique' => [],
'emailaddress', 'varchar', '', $char_d, '', '',
],
'primary_key' => 'contactemailnum',
- 'unique' => [ [ 'contactnum', 'emailaddress' ], ],
+ #'unique' => [ [ 'contactnum', 'emailaddress' ], ],
+ 'unique' => [ [ 'emailaddress' ], ],
'index' => [],
'foreign_keys' => [
{ columns => [ 'contactnum' ],
],
},
+ 'cust_main_credit_limit' => {
+ 'columns' => [
+ 'creditlimitnum', 'serial', '', '', '', '',
+ 'custnum', 'int', '', '', '', '',
+ '_date', @date_type, '', '',
+ 'amount', @money_typen, '', '',
+ #'amount_currency', 'char', 'NULL', 3, '', '',
+ 'credit_limit', @money_typen, '', '',
+ #'credit_limit_currency', 'char', 'NULL', 3, '', '',
+ ],
+ 'primary_key' => 'creditlimitnum',
+ 'unique' => [],
+ 'index' => [ ['custnum'], ],
+ 'foreign_keys' => [
+ { columns => [ 'custnum' ],
+ table => 'cust_main',
+ },
+ ],
+ },
+
'cust_main_note' => {
'columns' => [
'notenum', 'serial', '', '', '', '',
'pkgnum', 'int', 'NULL', '', '', '', #desired pkgnum for pkg-balances
'status', 'varchar', '', $char_d, '', '',
- 'session_id', 'varchar', 'NULL', $char_d, '', '', #only need 32
+ 'session_id', 'varchar', 'NULL', 1024, '', '', # SHA-512-hex
'statustext', 'text', 'NULL', '', '', '',
'gatewaynum', 'int', 'NULL', '', '', '',
#'cust_balance', @money_type, '', '',
'paynum', 'int', 'NULL', '', '', '',
+ 'void_paynum', 'int', 'NULL', '', '', '',
'jobnum', 'bigint', 'NULL', '', '', '',
'invnum', 'int', 'NULL', '', '', '',
'manual', 'char', 'NULL', 1, '', '',
{ columns => [ 'paynum' ],
table => 'cust_pay',
},
+ { columns => [ 'void_paynum' ],
+ table => 'cust_pay_void',
+ references => [ 'paynum' ],
+ },
{ columns => [ 'jobnum' ],
table => 'queue',
},
'index' => [ [ 'billpaynum' ], [ 'billpkgnum' ], ],
'foreign_keys' => [
{ columns => [ 'billpaynum' ],
- table => 'cust_bill_pay_batch',
+ table => 'cust_bill_pay',
},
{ columns => [ 'billpkgnum' ],
table => 'cust_bill_pkg',
'manual_flag', 'char', 'NULL', 1, '', '',
'no_auto', 'char', 'NULL', 1, '', '',
'quantity', 'int', 'NULL', '', '', '',
- 'agent_pkgid', 'int', 'NULL', '', '', '',
+ 'agent_pkgid', 'varchar', 'NULL', $char_d, '', '',
'waive_setup', 'char', 'NULL', 1, '', '',
'recur_show_zero', 'char', 'NULL', 1, '', '',
'setup_show_zero', 'char', 'NULL', 1, '', '',
'columns' => [
'pkgusagenum', 'serial', '', '', '', '',
'pkgnum', 'int', '', '', '', '',
- 'minutes', 'int', '', '', '', '',
+ 'minutes', 'double precision', '', '', '', '',
'pkgusagepart', 'int', '', '', '', '',
],
'primary_key' => 'pkgusagenum',
'cdrusagenum', 'bigserial', '', '', '', '',
'acctid', 'bigint', '', '', '', '',
'pkgusagenum', 'int', '', '', '', '',
- 'minutes', 'int', '', '', '', '',
+ 'minutes', 'double precision', '', '', '', '',
],
'primary_key' => 'cdrusagenum',
'unique' => [],
'currency', 'char', 'NULL', 3, '', '',
'otaker', 'varchar', 'NULL', 32, '', '',
'usernum', 'int', 'NULL', '', '', '',
- 'reason', 'varchar', '', $char_d, '', '',
+ 'reason', 'varchar', 'NULL', $char_d, '', '',
+ 'reasonnum', 'int', 'NULL', '', '', '',
'payby', 'char', '', 4, '', '', # CARD/BILL/COMP, should
# be index into payby
# table eventually
{ columns => [ 'usernum' ],
table => 'access_user',
},
+ { columns => [ 'reasonnum' ],
+ table => 'reason',
+ },
{ columns => [ 'gatewaynum' ],
table => 'payment_gateway',
},
],
},
- 'part_pkg' => {
+ 'part_pkg' => {
'columns' => [
'pkgpart', 'serial', '', '', '', '',
'pkg', 'varchar', '', $char_d, '', '',
- 'comment', 'varchar', '', 2*$char_d, '', '',
+ 'comment', 'varchar', 'NULL', 2*$char_d, '', '',
'promo_code', 'varchar', 'NULL', $char_d, '', '',
'freq', 'varchar', '', $char_d, '', '', #billing frequency
'setuptax', 'char', 'NULL', 1, '', '',
'successor', 'int', 'NULL', '', '', '',
'family_pkgpart','int', 'NULL', '', '', '',
'delay_start', 'int', 'NULL', '', '', '',
+ 'agent_pkgpartid', 'varchar', 'NULL', 20, '', '',
],
'primary_key' => 'pkgpart',
'unique' => [],
'index' => [ [ 'promo_code' ], [ 'disabled' ], [ 'classnum' ],
- [ 'agentnum' ], ['no_auto'],
+ [ 'agentnum' ], ['no_auto'], ['agent_pkgpartid'],
],
'foreign_keys' => [
{ columns => [ 'classnum' ],
'index' => [],
},
+ 'part_pkg_usageprice' => {
+ 'columns' => [
+ 'usagepricepart', 'serial', '', '', '', '',
+ 'pkgpart', 'int', '', '', '', '',
+ 'price', @money_type, '', '',
+ 'currency', 'char', 'NULL', 3, '', '',
+ 'action', 'varchar', '', $char_d, '', '',
+ 'target', 'varchar', '', $char_d, '', '',
+ 'amount', 'varchar', '', $char_d, '', '',
+ ],
+ 'primary_key' => 'usagepricepart',
+ 'unique' => [ [ 'pkgpart', 'currency', 'target' ] ],
+ 'index' => [ [ 'pkgpart' ] ],
+ 'foreign_keys' => [
+ { columns => [ 'pkgpart' ],
+ table => 'part_pkg',
+ },
+ ],
+ },
+
+ 'cust_pkg_usageprice' => {
+ 'columns' => [
+ 'usagepricenum', 'serial', '', '', '', '',
+ 'pkgnum', 'int', '', '', '', '',
+ 'usagepricepart', 'int', '', '', '', '',
+ 'quantity', 'int', '', '', '', '',
+ ],
+ 'primary_key' => 'usagepricenum',
+ 'unique' => [ [ 'pkgnum', 'usagepricepart' ] ],
+ 'index' => [ [ 'pkgnum' ] ],
+ 'foreign_keys' => [
+ { columns => [ 'pkgnum' ],
+ table => 'cust_pkg',
+ },
+ { columns => [ 'usagepricepart' ],
+ table => 'part_pkg_usageprice',
+ },
+ ],
+ },
+
+ 'part_fee' => {
+ 'columns' => [
+ 'feepart', 'serial', '', '', '', '',
+ 'itemdesc', 'varchar', '', $char_d, '', '',
+ 'comment', 'varchar', 'NULL', 2*$char_d, '', '',
+ 'disabled', 'char', 'NULL', 1, '', '',
+ 'classnum', 'int', 'NULL', '', '', '',
+ 'taxclass', 'varchar', 'NULL', $char_d, '', '',
+ 'taxproductnum', 'int', 'NULL', '', '', '',
+ 'pay_weight', 'real', 'NULL', '', '', '',
+ 'credit_weight', 'real', 'NULL', '', '', '',
+ 'agentnum', 'int', 'NULL', '', '', '',
+ 'amount', @money_type, '', '',
+ 'percent', 'decimal', '', '7,4', '', '',
+ 'basis', 'varchar', '', 16, '', '',
+ 'minimum', @money_typen, '', '',
+ 'maximum', @money_typen, '', '',
+ 'limit_credit', 'char', 'NULL', 1, '', '',
+ 'setuprecur', 'char', '', 5, '', '',
+ 'taxable', 'char', 'NULL', 1, '', '',
+ ],
+ 'primary_key' => 'feepart',
+ 'unique' => [],
+ 'index' => [ [ 'disabled' ], [ 'classnum' ], [ 'agentnum' ]
+ ],
+ 'foreign_keys' => [
+ { columns => [ 'classnum' ],
+ table => 'pkg_class',
+ },
+ { columns => [ 'taxproductnum' ],
+ table => 'part_pkg_taxproduct',
+ },
+ { columns => [ 'agentnum' ],
+ table => 'agent',
+ },
+ ],
+ },
+
+ 'part_fee_msgcat' => {
+ 'columns' => [
+ 'feepartmsgnum', 'serial', '', '', '', '',
+ 'feepart', 'int', '', '', '', '',
+ 'locale', 'varchar', '', 16, '', '',
+ 'itemdesc', 'varchar', '', $char_d, '', '', #longer/no limit?
+ 'comment', 'varchar', 'NULL', 2*$char_d, '', '', #longer/no limit?
+ ],
+ 'primary_key' => 'feepartmsgnum',
+ 'unique' => [ [ 'feepart', 'locale' ] ],
+ 'index' => [],
+ 'foreign_keys' => [
+ { columns => [ 'feepart' ],
+ table => 'part_fee',
+ },
+ ],
+ },
+
+ 'part_fee_usage' => {
+ 'columns' => [
+ 'feepartusagenum','serial', '', '', '', '',
+ 'feepart', 'int', '', '', '', '',
+ 'classnum', 'int', '', '', '', '',
+ 'amount', @money_type, '', '',
+ 'percent', 'decimal', '', '7,4', '', '',
+ ],
+ 'primary_key' => 'feepartusagenum',
+ 'unique' => [ [ 'feepart', 'classnum' ] ],
+ 'index' => [],
+ 'foreign_keys' => [
+ { columns => [ 'feepart' ],
+ table => 'part_fee',
+ },
+ { columns => [ 'classnum' ],
+ table => 'usage_class',
+ },
+ ],
+ },
+
'part_pkg_link' => {
'columns' => [
'pkglinknum', 'serial', '', '', '', '',
'classname', 'varchar', '', $char_d, '', '',
],
'primary_key' => 'classnum',
- 'unique' => [ ],
- 'index' => [ ],
+ 'unique' => [],
+ 'index' => [],
},
'hardware_type' => {
'disabled', 'char', 'NULL', 1, '', '',
],
'primary_key' => 'statusnum',
- 'unique' => [ ],
- 'index' => [ ],
+ 'unique' => [],
+ 'index' => [],
},
'domain_record' => {
'index' => [],
'foreign_keys' => [
{ columns => [ 'svcnum' ],
- table => 'svc_broadband',
+ table => 'svc_broadband',#no? could be _acct?
+ #remove or cust_svc?
},
],
},
'foreign_keys' => [
{ columns => [ 'jobnum' ],
table => 'queue',
+ on_delete => 'CASCADE',
},
],
},
{ columns => [ 'depend_jobnum' ],
table => 'queue',
references => [ 'jobnum' ],
+ on_delete => 'CASCADE',
},
],
},
'unique' => [ [ 'blocknum', 'routernum' ] ],
'index' => [],
'foreign_keys' => [
- { columns => [ 'routernum' ],
- table => 'router',
- },
+ #{ columns => [ 'routernum' ],
+ # table => 'router',
+ #},
{ columns => [ 'agentnum' ],
table => 'agent',
},
],
},
+ 'addr_range' => {
+ 'columns' => [
+ 'rangenum', 'serial', '', '', '', '',
+ 'start', 'varchar', '', 15, '', '',
+ 'length', 'int', '', '', '', '',
+ 'status', 'varchar', 'NULL', 32, '', '',
+ ],
+ 'primary_key' => 'rangenum',
+ 'unique' => [],
+ 'index' => [],
+ },
+
'svc_broadband' => {
'columns' => [
'svcnum', 'int', '', '', '', '',
'rssi', 'int', 'NULL', '', '', '',
'suid', 'int', 'NULL', '', '', '',
'shared_svcnum', 'int', 'NULL', '', '', '',
+ 'serviceid', 'varchar', 'NULL', 64, '', '',#srvexport/reportfields
],
'primary_key' => 'svcnum',
'unique' => [ [ 'ip_addr' ], [ 'mac_addr' ] ],
'tower_sector' => {
'columns' => [
- 'sectornum', 'serial', '', '', '', '',
- 'towernum', 'int', '', '', '', '',
- 'sectorname', 'varchar', '', $char_d, '', '',
- 'ip_addr', 'varchar', 'NULL', 15, '', '',
- 'height', 'decimal', 'NULL', '', '', '',
- 'freq_mhz', 'int', 'NULL', '', '', '',
- 'direction', 'int', 'NULL', '', '', '',
- 'width', 'int', 'NULL', '', '', '',
+ 'sectornum', 'serial', '', '', '', '',
+ 'towernum', 'int', '', '', '', '',
+ 'sectorname', 'varchar', '', $char_d, '', '',
+ 'ip_addr', 'varchar', 'NULL', 15, '', '',
+ 'height', 'decimal', 'NULL', '', '', '',
+ 'freq_mhz', 'int', 'NULL', '', '', '',
+ 'direction', 'int', 'NULL', '', '', '',
+ 'width', 'int', 'NULL', '', '', '',
#downtilt etc? rfpath has profile files for devices/antennas you upload?
- 'range', 'decimal', 'NULL', '', '', '', #?
+ 'sector_range', 'decimal', 'NULL', '', '', '', #?
],
'primary_key' => 'sectornum',
'unique' => [ [ 'towernum', 'sectorname' ], [ 'ip_addr' ], ],
'columns' => [
'pkgusagepart', 'serial', '', '', '', '',
'pkgpart', 'int', '', '', '', '',
- 'minutes', 'int', '', '', '', '',
+ 'minutes', 'double precision', '', '', '', '',
'priority', 'int', 'NULL', '', '', '',
'shared', 'char', 'NULL', 1, '', '',
'rollover', 'char', 'NULL', 1, '', '',
'rate' => {
'columns' => [
- 'ratenum', 'serial', '', '', '', '',
- 'ratename', 'varchar', '', $char_d, '', '',
+ 'ratenum', 'serial', '', '', '', '',
+ 'ratename', 'varchar', '', $char_d, '', '',
+ 'agentnum', 'int', 'NULL', '', '', '',
],
'primary_key' => 'ratenum',
'unique' => [],
'index' => [],
+ 'foreign_keys' => [
+ { columns => [ 'agentnum' ],
+ table => 'agent',
+ },
+ ],
},
'rate_detail' => {
'dest_regionnum', 'int', '', '', '', '',
'min_included', 'int', '', '', '', '',
'conn_charge', 'decimal', '', '10,4', '0.0000', '',
+ 'conn_cost', 'decimal', '', '10,4', '0.0000', '',
'conn_sec', 'int', '', '', '0', '',
'min_charge', 'decimal', '', '10,5', '', '',
+ 'min_cost', 'decimal', '', '10,5','0.00000', '',
'sec_granularity', 'int', '', '', '', '',
'ratetimenum', 'int', 'NULL', '', '', '',
'classnum', 'int', 'NULL', '', '', '',
'cdrtypenum', 'int', 'NULL', '', '', '',
- 'region_group', 'char', 'NULL', 1, '', '',
+ 'region_group', 'char', 'NULL', 1, '', '',
],
'primary_key' => 'ratedetailnum',
'unique' => [ [ 'ratenum', 'orig_regionnum', 'dest_regionnum' ] ],
'pkg_category' => {
'columns' => [
- 'categorynum', 'serial', '', '', '', '',
- 'categoryname', 'varchar', '', $char_d, '', '',
- 'weight', 'int', 'NULL', '', '', '',
- 'condense', 'char', 'NULL', 1, '', '',
- 'disabled', 'char', 'NULL', 1, '', '',
+ 'categorynum', 'serial', '', '', '', '',
+ 'categoryname', 'varchar', '', $char_d, '', '',
+ 'weight', 'int', 'NULL', '', '', '',
+ 'ticketing_queueid', 'int', 'NULL', '', '', '',
+ 'condense', 'char', 'NULL', 1, '', '',
+ 'disabled', 'char', 'NULL', 1, '', '',
],
'primary_key' => 'categorynum',
'unique' => [],
'lastapp', 'varchar', '', $char_d, \"''", '',
'lastdata', 'varchar', '', 255, \"''", '',
- #currently only opensips
+ #currently only opensips & voipswitch
'src_ip_addr', 'varchar', 'NULL', 15, '', '',
+
+ #currently only opensips
'dst_ip_addr', 'varchar', 'NULL', 15, '', '',
#currently only u4:
'charged_party_imsi', 'varchar', 'NULL', $char_d, '', '',
'upstream_price', 'decimal', 'NULL', '10,5', '', '',
+
+ #currently only voipswitch
+ #'upstream_rate', 'decimal', 'NULL', '10,5', '', '',
+
'upstream_src_regionname', 'varchar', 'NULL', $char_d, '', '',
'upstream_dst_regionname', 'varchar', 'NULL', $char_d, '', '',
'index' => [],
},
+ 'sched_item' => {
+ 'columns' => [
+ 'itemnum', 'serial', '', '', '', '',
+ 'usernum', 'int', 'NULL', '', '', '',
+ #'itemname', 'varchar', $char_d, '', '', '',
+ 'disabled', 'char', 'NULL', 1, '', '',
+ ],
+ 'primary_key' => 'itemnum',
+ 'unique' => [ [ 'usernum' ] ],
+ 'index' => [],
+ 'foreign_keys' => [
+ { columns => [ 'usernum' ],
+ table => 'access_user',
+ },
+ ],
+ },
+
+ #'sched_item_class'
+
+ 'sched_avail' => {
+ 'columns' => [
+ 'availnum', 'serial', '', '', '', '',
+ 'itemnum', 'int', '', '', '', '',
+ 'wday', 'int', '', '', '', '',
+ 'stime', 'int', '', '', '', '',
+ 'etime', 'int', '', '', '', '',
+ 'override_date', @date_type, '', '',
+ ],
+ 'primary_key' => 'availnum',
+ 'unique' => [],
+ 'index' => [],
+ 'foreign_keys' => [
+ { columns => [ 'itemnum' ],
+ table => 'sched_item',
+ },
+ ],
+ },
+
'svc_phone' => {
'columns' => [
'svcnum', 'int', '', '', '', '',
],
},
+ 'pbx_extension' => {
+ 'columns' => [
+ 'extensionnum', 'serial', '', '', '', '',
+ 'svcnum', 'int', '', '', '', '',
+ 'extension', 'varchar', '', $char_d, '', '',
+ 'pin', 'varchar', 'NULL', $char_d, '', '',
+ 'sip_password', 'varchar', 'NULL', $char_d, '', '',
+ 'phone_name', 'varchar', 'NULL', $char_d, '', '',
+ ],
+ 'primary_key' => 'extensionnum',
+ 'unique' => [ [ 'svcnum', 'extension' ] ],
+ 'index' => [ [ 'svcnum' ] ],
+ 'foreign_keys' => [
+ { columns => [ 'svcnum' ],
+ table => 'svc_pbx',
+ },
+ ],
+ },
+
+ 'pbx_device' => {
+ 'columns' => [
+ 'devicenum', 'serial', '', '', '', '',
+ 'devicepart', 'int', '', '', '', '',
+ 'svcnum', 'int', '', '', '', '',
+ 'mac_addr', 'varchar', 'NULL', 12, '', '',
+ ],
+ 'primary_key' => 'devicenum',
+ 'unique' => [ [ 'mac_addr' ], ],
+ 'index' => [ [ 'devicepart' ], [ 'svcnum' ], ],
+ 'foreign_keys' => [
+ { columns => [ 'devicepart' ],
+ table => 'part_device',
+ },
+ { columns => [ 'svcnum' ],
+ table => 'svc_pbx',
+ },
+ ],
+ },
+
+ 'extension_device' => {
+ 'columns' => [
+ 'extensiondevicenum', 'serial', '', '', '', '',
+ 'extensionnum', 'int', '', '', '', '',
+ 'devicenum', 'int', '', '', '', '',
+ ],
+ 'primary_key' => 'extensiondevicenum',
+ 'unique' => [ [ 'extensionnum', 'devicenum' ] ],
+ 'index' => [],#both? which way do we need to query?
+ 'foreign_keys' => [
+ { columns => [ 'extensionnum' ],
+ table => 'pbx_extension',
+ },
+ { columns => [ 'devicenum' ],
+ table => 'pbx_device',
+ },
+ ],
+ },
+
'svc_mailinglist' => { #svc_group?
'columns' => [
'svcnum', 'int', '', '', '', '',
'cust_msg' => {
'columns' => [
'custmsgnum', 'serial', '', '', '', '',
- 'custnum', 'int', '', '', '', '',
+ 'custnum', 'int', 'NULL', '', '', '',
'msgnum', 'int', 'NULL', '', '', '',
'_date', @date_type, '', '',
'env_from', 'varchar', 'NULL', 255, '', '',
'body', 'blob', 'NULL', '', '', '',
'error', 'varchar', 'NULL', 255, '', '',
'status', 'varchar', '',$char_d, '', '',
+ 'msgtype', 'varchar', 'NULL', 16, '', '',
],
'primary_key' => 'custmsgnum',
'unique' => [ ],
'statustext', 'varchar', 'NULL', $char_d, '', '',
],
'primary_key' => 'upgradenum',
- 'unique' => [ [ 'upgradenum' ] ],
+ 'unique' => [],
'index' => [ [ 'upgrade' ] ],
},
'svc_alarm' => {
'columns' => [
'svcnum', 'int', '', '', '', '',
- 'alarm_system', 'varchar', '', $char_d, '', '', # dropdowns?
- 'alarm_type', 'varchar', '', $char_d, '', '', #
+ 'alarmsystemnum', 'int', '', '', '', '',
+ 'alarmtypenum', 'int', '', '', '', '',
+ 'alarmstationnum', 'int', '', '', '', '',
'acctnum', 'varchar', '', $char_d, '', '',
'_password', 'varchar', '', $char_d, '', '',
'location', 'varchar', 'NULL', $char_d, '', '',
- #cs
- #rep
+ #installer (rep)
],
'primary_key' => 'svcnum',
- 'unique' => [], #system/type/acctnum??
+ 'unique' => [],
'index' => [],
'foreign_keys' => [
{ columns => [ 'svcnum' ],
table => 'cust_svc',
},
+ { columns => [ 'alarmsystemnum' ],
+ table => 'alarm_system',
+ },
+ { columns => [ 'alarmtypenum' ],
+ table => 'alarm_type',
+ },
+ { columns => [ 'alarmstationnum' ],
+ table => 'alarm_station',
+ },
+ ],
+ },
+
+ 'alarm_system' => { #vendors
+ 'columns' => [
+ 'alarmsystemnum', 'serial', '', '', '', '',
+ 'agentnum', 'int', 'NULL', '', '', '',
+ 'systemname', 'varchar', '', $char_d, '', '',
+ 'disabled', 'char', 'NULL', 1, '', '',
+ ],
+ 'primary_key' => 'alarmsystemnum',
+ 'unique' => [ ['agentnum', 'systemname'] ],
+ 'index' => [ ['agentnum'], ['disabled'] ],
+ 'foreign_keys' => [
+ { columns => [ 'agentnum' ],
+ table => 'agent',
+ },
+ ],
+ },
+
+ 'alarm_type' => { #inputs and outputs
+ 'columns' => [
+ 'alarmtypenum', 'serial', '', '', '', '',
+ 'agentnum', 'int', 'NULL', '', '', '',
+ 'inputs', 'int', '', '', '', '',
+ 'outputs', 'int', '', '', '', '',
+ 'disabled', 'char', 'NULL', 1, '', '',
+ ],
+ 'primary_key' => 'alarmtypenum',
+ 'unique' => [ ['agentnum', 'inputs', 'outputs'] ],
+ 'index' => [ ['agentnum'], ['disabled'] ],
+ 'foreign_keys' => [
+ { columns => [ 'agentnum' ],
+ table => 'agent',
+ },
+ ],
+ },
+
+ 'alarm_station' => { #central station (where the alarm reports to)
+ 'columns' => [
+ 'alarmstationnum', 'serial', '', '', '', '',
+ 'agentnum', 'int', 'NULL', '', '', '',
+ 'stationname', 'varchar', '', $char_d, '', '',
+ 'disabled', 'char', 'NULL', 1, '', '',
+ ],
+ 'primary_key' => 'alarmstationnum',
+ 'unique' => [ ['agentnum', 'stationname'], ],
+ 'index' => [ ['agentnum'], ['disabled'] ],
+ 'foreign_keys' => [
+ { columns => [ 'agentnum' ],
+ table => 'agent',
+ },
],
},
'index' => [],
},
+ 'svc_conferencing' => {
+ 'columns' => [
+ 'svcnum', 'int', '', '', '', '',
+ 'conf_id', 'int', 'NULL', '', '', '', #"system assigned"
+ 'conf_name', 'varchar', '', $char_d, '', '',
+ 'conf_password', 'varchar', '', $char_d, '', '',
+ 'access_code', 'varchar', '', 16, '', '',
+ 'duration', 'int', '', '', '', '',
+ 'participants', 'int', '', '', '', '',
+ 'conftypenum', 'int', '', '', '', '',
+ 'confqualitynum', 'int', '', '', '', '',
+ 'opt_recording', 'char', 'NULL', 1, '', '',
+ 'opt_sip', 'char', 'NULL', 1, '', '',
+ 'opt_phone', 'char', 'NULL', 1, '', '',
+ ],
+ 'primary_key' => 'svcnum',
+ 'unique' => [],
+ 'index' => [],
+ 'foreign_keys' => [
+ { columns => [ 'svcnum' ],
+ table => 'cust_svc',
+ },
+ { columns => [ 'conftypenum' ],
+ table => 'conferencing_type',
+ },
+ { columns => [ 'confqualitynum' ],
+ table => 'conferencing_quality',
+ },
+ ],
+ },
+
+ 'conferencing_type' => {
+ 'columns' => [
+ 'conftypenum', 'int', '', '', '', '',
+ 'typeid' , 'int', '', '', '', '',
+ 'typename', 'varchar', '', $char_d, '', '',
+ 'disabled', 'char', 'NULL', 1, '', '',
+ ],
+ 'primary_key' => 'conftypenum',
+ 'unique' => [ [ 'typeid', 'disabled' ], [ 'typename', 'disabled' ] ],
+ 'index' => [],
+ },
+
+ 'conferencing_quality' => {
+ 'columns' => [
+ 'confqualitynum', 'int', '', '', '', '',
+ 'qualityid' , 'int', '', '', '', '',
+ 'qualityname', 'varchar', '', $char_d, '', '',
+ 'disabled', 'char', 'NULL', 1, '', '',
+ ],
+ 'primary_key' => 'confqualitynum',
+ 'unique' => [ [ 'qualityid', 'disabled' ], [ 'qualityname', 'disabled' ] ],
+ 'index' => [],
+ },
+
+ 'svc_video' => {
+ 'columns' => [
+ 'svcnum', 'int', '', '', '', '',
+ 'smartcard_num', 'varchar', '', 16, '', '',
+ 'mac_addr', 'varchar', '', 12, '', '',
+ 'duration', 'int', '', '', '', '',
+ ],
+ 'primary_key' => 'svcnum',
+ 'unique' => [], # [ 'smartcard_num' ], [ 'mac_addr' ], ],
+ 'index' => [],
+ 'foreign_keys' => [
+ { columns => [ 'svcnum' ],
+ table => 'cust_svc',
+ },
+ ],
+ },
+
'vend_main' => {
'columns' => [
'vendnum', 'serial', '', '', '', '',
'latexnotes', 'text', 'NULL', '', '', '',
'latexfooter', 'text', 'NULL', '', '', '',
'latexsummary', 'text', 'NULL', '', '', '',
- 'latexcoupon', 'text', 'NULL', '', '', '',
'latexsmallfooter', 'text', 'NULL', '', '', '',
'latexreturnaddress', 'text', 'NULL', '', '', '',
- 'latextopmargin', 'varchar', 'NULL', 16, '', '',
- 'latexheadsep', 'varchar', 'NULL', 16, '', '',
- 'latexaddresssep', 'varchar', 'NULL', 16, '', '',
- 'latextextheight', 'varchar', 'NULL', 16, '', '',
- 'latexextracouponspace','varchar', 'NULL', 16, '', '',
- 'latexcouponfootsep', 'varchar', 'NULL', 16, '', '',
- 'latexcouponamountenclosedsep', 'varchar', 'NULL', 16, '', '',
- 'latexcoupontoaddresssep', 'varchar', 'NULL', 16, '', '',
- 'latexverticalreturnaddress', 'char', 'NULL', 1, '', '',
- 'latexcouponaddcompanytoaddress', 'char', 'NULL', 1, '', '',
- 'logo_png', 'blob', 'NULL', '', '', '',
- 'logo_eps', 'blob', 'NULL', '', '', '',
+ 'with_latexcoupon', 'char', 'NULL', '1', '', '',
'lpr', 'varchar', 'NULL', $char_d, '', '',
],
'primary_key' => 'confnum',