X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FSchema.pm;h=30a35deb0db046df62c73f8c55e12583c7358e67;hb=b7c25d5e38e6459efe5d1c2f09f437b79798038e;hp=8ba60200edabb0fa3a2188e36956e74aa5f9d221;hpb=df1ebf662a9fc3f89503036e0dbf6833c1b95f9e;p=freeside.git diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 8ba60200e..30a35deb0 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -3,7 +3,7 @@ package FS::Schema; 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; @@ -1003,12 +1003,12 @@ sub tables_hashref { { 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', }, @@ -1138,9 +1138,10 @@ sub tables_hashref { { 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' ], @@ -1175,12 +1176,12 @@ sub tables_hashref { { 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', }, @@ -1284,11 +1285,12 @@ sub tables_hashref { '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' ], @@ -1671,7 +1673,10 @@ sub tables_hashref { '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' => [], @@ -1735,7 +1740,8 @@ sub tables_hashref { 'emailaddress', 'varchar', '', $char_d, '', '', ], 'primary_key' => 'contactemailnum', - 'unique' => [ [ 'contactnum', 'emailaddress' ], ], + #'unique' => [ [ 'contactnum', 'emailaddress' ], ], + 'unique' => [ [ 'emailaddress' ], ], 'index' => [], 'foreign_keys' => [ { columns => [ 'contactnum' ], @@ -2389,7 +2395,7 @@ sub tables_hashref { 'index' => [ [ 'billpaynum' ], [ 'billpkgnum' ], ], 'foreign_keys' => [ { columns => [ 'billpaynum' ], - table => 'cust_bill_pay_batch', + table => 'cust_bill_pay', }, { columns => [ 'billpkgnum' ], table => 'cust_bill_pkg', @@ -2923,11 +2929,11 @@ sub tables_hashref { ], }, - '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, '', '', @@ -3031,6 +3037,46 @@ sub tables_hashref { '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_pkg_link' => { 'columns' => [ 'pkglinknum', 'serial', '', '', '', '', @@ -3655,8 +3701,8 @@ sub tables_hashref { 'classname', 'varchar', '', $char_d, '', '', ], 'primary_key' => 'classnum', - 'unique' => [ ], - 'index' => [ ], + 'unique' => [], + 'index' => [], }, 'hardware_type' => { @@ -3683,8 +3729,8 @@ sub tables_hashref { 'disabled', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'statusnum', - 'unique' => [ ], - 'index' => [ ], + 'unique' => [], + 'index' => [], }, 'domain_record' => { @@ -3889,7 +3935,8 @@ sub tables_hashref { 'index' => [], 'foreign_keys' => [ { columns => [ 'svcnum' ], - table => 'svc_broadband', + table => 'svc_broadband',#no? could be _acct? + #remove or cust_svc? }, ], }, @@ -3953,6 +4000,7 @@ sub tables_hashref { 'foreign_keys' => [ { columns => [ 'jobnum' ], table => 'queue', + on_delete => 'CASCADE', }, ], }, @@ -3973,6 +4021,7 @@ sub tables_hashref { { columns => [ 'depend_jobnum' ], table => 'queue', references => [ 'jobnum' ], + on_delete => 'CASCADE', }, ], }, @@ -4275,6 +4324,18 @@ sub tables_hashref { ], }, + 'addr_range' => { + 'columns' => [ + 'rangenum', 'serial', '', '', '', '', + 'start', 'varchar', '', 15, '', '', + 'length', 'int', '', '', '', '', + 'status', 'varchar', 'NULL', 32, '', '', + ], + 'primary_key' => 'rangenum', + 'unique' => [], + 'index' => [], + }, + 'svc_broadband' => { 'columns' => [ 'svcnum', 'int', '', '', '', '', @@ -4903,7 +4964,7 @@ sub tables_hashref { #currently only u4: # terminating number (as opposed to dialed destination) - 'dst_term', 'varchar', '', $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; @@ -5843,7 +5904,7 @@ sub tables_hashref { 'statustext', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'upgradenum', - 'unique' => [ [ 'upgradenum' ] ], + 'unique' => [], 'index' => [ [ 'upgrade' ] ], }, @@ -5909,21 +5970,82 @@ sub tables_hashref { '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', + }, ], }, @@ -5974,6 +6096,78 @@ sub tables_hashref { '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', '', '', '', '',