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;
{ 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',
},
{ 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' ],
{ 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',
},
'index' => [ [ 'billpaynum' ], [ 'billpkgnum' ], ],
'foreign_keys' => [
{ columns => [ 'billpaynum' ],
- table => 'cust_bill_pay_batch',
+ table => 'cust_bill_pay',
},
{ columns => [ 'billpkgnum' ],
table => 'cust_bill_pkg',
'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',
},
],
},
],
},
+ 'addr_range' => {
+ 'columns' => [
+ 'rangenum', 'serial', '', '', '', '',
+ 'start', 'varchar', '', 15, '', '',
+ 'length', 'int', '', '', '', '',
+ 'status', 'varchar', 'NULL', 32, '', '',
+ ],
+ 'primary_key' => 'rangenum',
+ 'unique' => [],
+ 'index' => [],
+ },
+
'svc_broadband' => {
'columns' => [
'svcnum', 'int', '', '', '', '',
#currently only u4:
# terminating number (as opposed to dialed destination)
- 'dst_term', 'varchar', 'NULL', $char_d, \"''", '',
+ 'dst_term', 'varchar', 'NULL', $char_d, '', '',
#these don't seem to be logged by most of the SQL cdr_* modules
#except tds under sql-illegal names, so;
'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',
+ },
],
},