X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FSchema.pm;h=9aa865607959e46bdfe6d0b3ceb1f8c5f589426b;hb=f576e065fb741448cc4834cdb9b09b718ca4ece2;hp=4b3fde080b0d517de1525218136823d79ac45151;hpb=ebcfdd04f1fe69028836d231238845801aa69505;p=freeside.git diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 4b3fde080..9aa865607 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -7,6 +7,7 @@ use DBIx::DBSchema 0.40; #0.40 for mysql upgrade fixes use DBIx::DBSchema::Table; use DBIx::DBSchema::Column; use DBIx::DBSchema::Index; +#can't use this yet, dependency bs #use FS::Conf; @ISA = qw(Exporter); @EXPORT_OK = qw( dbdef dbdef_dist reload_dbdef ); @@ -75,7 +76,8 @@ Currently, this enables "ENGINE=InnoDB" for MySQL databases. =cut sub dbdef_dist { - my $datasrc = @_ ? shift : ''; + my $datasrc = @_ && !ref($_[0]) ? shift : ''; + my $opt = @_ ? shift : {}; my $local_options = ''; if ( $datasrc =~ /^dbi:mysql/i ) { @@ -192,6 +194,7 @@ sub dbdef_dist { grep { ! /^clientapi_session/ && ! /^h_/ && ! /^log(_context)?$/ + && ( ! /^queue(_arg)?$/ || ! $opt->{'queue-no_history'} ) && ! $tables_hashref_torrus->{$_} } $dbdef->tables @@ -201,7 +204,7 @@ sub dbdef_dist { my %h_indices = (); - unless ( $table eq 'cust_event' ) { #others? + unless ( $table eq 'cust_event' || $table eq 'cdr' ) { #others? my %indices = $tableobj->indices; @@ -518,6 +521,7 @@ sub tables_hashref { 'salesnum', 'serial', '', '', '', '', 'salesperson', 'varchar', '', $char_d, '', '', 'agentnum', 'int', 'NULL', '', '', '', + 'sales_custnum', 'int', 'NULL', '', '', '', 'disabled', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'salesnum', @@ -525,6 +529,19 @@ sub tables_hashref { 'index' => [ ['salesnum'], ['disabled'] ], }, + 'sales_pkg_class' => { + 'columns' => [ + 'salespkgclassnum', 'serial', '', '', '', '', + 'salesnum', 'int', '', '', '', '', + 'classnum', 'int', 'NULL', '', '', '', + 'commission_percent', 'decimal', '', '7,4', '', '', + 'commission_duration', 'int', 'NULL', '', '', '', + ], + 'primary_key' => 'salespkgclassnum', + 'unique' => [ [ 'salesnum', 'classnum' ], ], + 'index' => [], + }, + 'cust_attachment' => { 'columns' => [ 'attachnum', 'serial', '', '', '', '', @@ -744,6 +761,19 @@ sub tables_hashref { ], }, + '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' ] ], + }, + 'cust_bill_pkg' => { 'columns' => [ 'billpkgnum', 'serial', '', '', '', '', @@ -762,6 +792,7 @@ sub tables_hashref { 'unitsetup', @money_typen, '', '', 'unitrecur', @money_typen, '', '', 'hidden', 'char', 'NULL', 1, '', '', + 'feepart', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpkgnum', 'unique' => [], @@ -791,7 +822,7 @@ sub tables_hashref { 'cust_bill_pkg_display' => { 'columns' => [ - 'billpkgdisplaynum', 'serial', '', '', '', '', + 'billpkgdisplaynum', 'serial', '', '', '', '', 'billpkgnum', 'int', '', '', '', '', 'section', 'varchar', 'NULL', $char_d, '', '', #'unitsetup', @money_typen, '', '', #override the linked real one? @@ -805,6 +836,22 @@ sub tables_hashref { 'index' => [ ['billpkgnum'], ], }, + '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'], + ], + }, + 'cust_bill_pkg_tax_location' => { 'columns' => [ 'billpkgtaxlocationnum', 'serial', '', '', '', '', @@ -917,6 +964,7 @@ sub tables_hashref { 'pkgnum', 'int', '', '', '', '', 'locationnum', 'int', '', '', '', '', #redundant? 'amount', @money_type, '', '', + 'taxable_billpkgnum', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpkgtaxlocationnum', 'unique' => [], @@ -952,13 +1000,49 @@ sub tables_hashref { 'closed', 'char', 'NULL', 1, '', '', 'pkgnum', 'int', 'NULL', '', '', '', #desired pkgnum for pkg-balances 'eventnum', 'int', 'NULL', '', '', '', #triggering event for commission - #'commission_agentnum', 'int', 'NULL', '', '', '', # + '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'] ], + 'index' => [ ['custnum'], ['_date'], ['usernum'], ['eventnum'], + ['commission_salesnum'], ['credbatch'], + ], }, + 'cust_credit_void' => { + 'columns' => [ + 'crednum', 'serial', '', '', '', '', + 'custnum', 'int', '', '', '', '', + '_date', @date_type, '', '', + 'amount',@money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', + 'otaker', 'varchar', 'NULL', 32, '', '', + 'usernum', 'int', 'NULL', '', '', '', + 'reason', 'text', 'NULL', '', '', '', + 'reasonnum', 'int', 'NULL', '', '', '', + 'addlinfo', 'text', 'NULL', '', '', '', + 'closed', 'char', 'NULL', 1, '', '', + 'pkgnum', 'int', 'NULL', '', '','', + 'eventnum', 'int', 'NULL', '', '','', + 'commission_agentnum', 'int', 'NULL', '', '', '', + 'commission_salesnum', 'int', 'NULL', '', '', '', + 'commission_pkgnum', 'int', 'NULL', '', '', '', + #void fields + 'void_date', @date_type, '', '', + 'void_reason', 'varchar', 'NULL', $char_d, '', '', + 'void_usernum', 'int', 'NULL', '', '', '', + ], + 'primary_key' => 'crednum', + 'unique' => [], + 'index' => [ ['custnum'], ['_date'], ['usernum'], ['eventnum'], + [ 'commission_salesnum' ], + ], + }, + + 'cust_credit_bill' => { 'columns' => [ 'creditbillnum', 'serial', '', '', '', '', @@ -998,6 +1082,7 @@ sub tables_hashref { 'columns' => [ 'custnum', 'serial', '', '', '', '', 'agentnum', 'int', '', '', '', '', + 'salesnum', 'int', 'NULL', '', '', '', 'agent_custid', 'varchar', 'NULL', $char_d, '', '', 'classnum', 'int', 'NULL', '', '', '', 'custbatch', 'varchar', 'NULL', $char_d, '', '', @@ -1152,7 +1237,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' => [], @@ -1194,7 +1282,8 @@ sub tables_hashref { 'emailaddress', 'varchar', '', $char_d, '', '', ], 'primary_key' => 'contactemailnum', - 'unique' => [ [ 'emailaddress' ], ], + #'unique' => [ [ 'contactnum', 'emailaddress' ], ], + 'unique' => [ [ 'emailaddress' ], ], 'index' => [], }, @@ -1302,6 +1391,21 @@ sub tables_hashref { 'index' => [ ['custnum'], ], }, + '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'], ], + }, + 'cust_main_note' => { 'columns' => [ 'notenum', 'serial', '', '', '', '', @@ -1540,6 +1644,9 @@ sub tables_hashref { #'cust_balance', @money_type, '', '', 'paynum', 'int', 'NULL', '', '', '', 'jobnum', 'bigint', 'NULL', '', '', '', + 'invnum', 'int', 'NULL', '', '', '', + 'manual', 'char', 'NULL', 1, '', '', + 'discount_term','int', 'NULL', '', '', '', ], 'primary_key' => 'paypendingnum', 'unique' => [ [ 'payunique' ] ], @@ -1731,6 +1838,7 @@ sub tables_hashref { 'locationnum', 'int', 'NULL', '', '', '', 'otaker', 'varchar', 'NULL', 32, '', '', 'usernum', 'int', 'NULL', '', '', '', + 'salesnum', 'int', 'NULL', '', '', '', 'order_date', @date_type, '', '', 'start_date', @date_type, '', '', 'setup', @date_type, '', '', @@ -1881,6 +1989,7 @@ sub tables_hashref { 'columns' => [ 'discountnum', 'serial', '', '', '', '', #'agentnum', 'int', 'NULL', '', '', '', + 'classnum', 'int', 'NULL', '', '', '', 'name', 'varchar', 'NULL', $char_d, '', '', 'amount', @money_type, '', '', 'percent', 'decimal', '', '7,4', '', '', @@ -1894,6 +2003,18 @@ sub tables_hashref { 'index' => [], # [ 'agentnum' ], ], }, + 'discount_class' => { + 'columns' => [ + 'classnum', 'serial', '', '', '', '', + 'classname', 'varchar', '', $char_d, '', '', + #'categorynum', 'int', 'NULL', '', '', '', + 'disabled', 'char', 'NULL', 1, '', '', + ], + 'primary_key' => 'classnum', + 'unique' => [], + 'index' => [ ['disabled'] ], + }, + 'cust_refund' => { 'columns' => [ 'refundnum', 'serial', '', '', '', '', @@ -1988,7 +2109,7 @@ sub tables_hashref { '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, '', '', @@ -2013,11 +2134,12 @@ sub tables_hashref { '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'], ], }, @@ -2034,6 +2156,59 @@ sub tables_hashref { 'index' => [], }, + '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' ] + ], + }, + + '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' => [], + }, + + 'part_fee_usage' => { + 'columns' => [ + 'feepartusagenum','serial', '', '', '', '', + 'feepart', 'int', '', '', '', '', + 'classnum', 'int', '', '', '', '', + 'amount', @money_type, '', '', + 'percent', 'decimal', '', '7,4', '', '', + ], + 'primary_key' => 'feepartusagenum', + 'unique' => [ [ 'feepart', 'classnum' ] ], + 'index' => [], + }, + 'part_pkg_link' => { 'columns' => [ 'pkglinknum', 'serial', '', '', '', '', @@ -2163,6 +2338,7 @@ sub tables_hashref { 'selfservice_access', 'varchar', 'NULL', $char_d, '', '', 'classnum', 'int', 'NULL', '', '', '', 'restrict_edit_password','char', 'NULL', 1, '', '', + 'has_router', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'svcpart', 'unique' => [], @@ -2916,6 +3092,18 @@ sub tables_hashref { 'index' => [], }, + 'addr_range' => { + 'columns' => [ + 'rangenum', 'serial', '', '', '', '', + 'start', 'varchar', '', 15, '', '', + 'length', 'int', '', '', '', '', + 'status', 'varchar', 'NULL', 32, '', '', + ], + 'primary_key' => 'rangenum', + 'unique' => [], + 'index' => [], + }, + 'svc_broadband' => { 'columns' => [ 'svcnum', 'int', '', '', '', '', @@ -2948,14 +3136,17 @@ sub tables_hashref { 'tower' => { 'columns' => [ - 'towernum', 'serial', '', '', '', '', - #'agentnum', 'int', 'NULL', '', '', '', - 'towername', 'varchar', '', $char_d, '', '', - 'disabled', 'char', 'NULL', 1, '', '', - 'latitude', 'decimal', 'NULL', '10,7', '', '', - 'longitude','decimal', 'NULL', '10,7', '', '', - 'altitude', 'decimal', 'NULL', '', '', '', - 'coord_auto', 'char', 'NULL', 1, '', '', + 'towernum', 'serial', '', '', '', '', + #'agentnum', 'int', 'NULL', '', '', '', + 'towername', 'varchar', '', $char_d, '', '', + 'disabled', 'char', 'NULL', 1, '', '', + 'latitude', 'decimal', 'NULL', '10,7', '', '', + 'longitude', 'decimal', 'NULL', '10,7', '', '', + 'coord_auto', 'char', 'NULL', 1, '', '', + 'altitude', 'decimal', 'NULL', '', '', '', + 'height', 'decimal', 'NULL', '', '', '', + 'veg_height', 'decimal', 'NULL', '', '', '', + 'color', 'varchar', 'NULL', 6, '', '', ], 'primary_key' => 'towernum', 'unique' => [ [ 'towername' ] ], # , 'agentnum' ] ], @@ -2968,6 +3159,12 @@ sub tables_hashref { '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', '', '', '', #? ], 'primary_key' => 'sectornum', 'unique' => [ [ 'towernum', 'sectorname' ], [ 'ip_addr' ], ], @@ -3378,6 +3575,10 @@ sub tables_hashref { 'src_ip_addr', 'varchar', 'NULL', 15, '', '', 'dst_ip_addr', 'varchar', 'NULL', 15, '', '', + #currently only u4: + # terminating number (as opposed to dialed destination) + '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; # ... don't rely on them for rating? @@ -3487,7 +3688,7 @@ sub tables_hashref { [ 'sessionnum' ], [ 'subscriber' ], [ 'freesidestatus' ], [ 'freesiderewritestatus' ], [ 'cdrbatch' ], [ 'cdrbatchnum' ], - [ 'src_ip_addr' ], [ 'dst_ip_addr' ], + [ 'src_ip_addr' ], [ 'dst_ip_addr' ], [ 'dst_term' ], ], }, @@ -3603,13 +3804,14 @@ sub tables_hashref { 'access_user' => { 'columns' => [ - 'usernum', 'serial', '', '', '', '', - 'username', 'varchar', '', $char_d, '', '', - '_password', 'varchar', '', $char_d, '', '', - 'last', 'varchar', '', $char_d, '', '', - 'first', 'varchar', '', $char_d, '', '', - 'user_custnum', 'int', 'NULL', '', '', '', - 'disabled', 'char', 'NULL', 1, '', '', + 'usernum', 'serial', '', '', '', '', + 'username', 'varchar', '', $char_d, '', '', + '_password', 'varchar', '', $char_d, '', '', + 'last', 'varchar', '', $char_d, '', '', + 'first', 'varchar', '', $char_d, '', '', + 'user_custnum', 'int', 'NULL', '', '', '', + 'report_salesnum', 'int', 'NULL', '', '', '', + 'disabled', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'usernum', 'unique' => [ [ 'username' ] ], @@ -3661,17 +3863,6 @@ sub tables_hashref { 'index' => [ [ 'groupnum' ] ], }, - 'access_groupsales' => { - 'columns' => [ - 'groupsalesnum', 'serial', '', '', '', '', - 'groupnum', 'int', '', '', '', '', - 'salesnum', 'int', '', '', '', '', - ], - 'primary_key' => 'groupsalesnum', - 'unique' => [ [ 'groupnum', 'salesnum' ] ], - 'index' => [ [ 'groupnum' ] ], - }, - 'access_right' => { 'columns' => [ 'rightnum', 'serial', '', '', '', '', @@ -3904,6 +4095,25 @@ sub tables_hashref { 'index' => [ [ 'id' ] ], }, + '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', + }, + ], + }, + 'svc_mailinglist' => { #svc_group? 'columns' => [ 'svcnum', 'int', '', '', '', '', @@ -4011,7 +4221,7 @@ sub tables_hashref { 'cust_msg' => { 'columns' => [ 'custmsgnum', 'serial', '', '', '', '', - 'custnum', 'int', '', '', '', '', + 'custnum', 'int', 'NULL', '', '', '', 'msgnum', 'int', 'NULL', '', '', '', '_date', @date_type, '', '', 'env_from', 'varchar', 'NULL', 255, '', '', @@ -4020,6 +4230,7 @@ sub tables_hashref { 'body', 'blob', 'NULL', '', '', '', 'error', 'varchar', 'NULL', 255, '', '', 'status', 'varchar', '',$char_d, '', '', + 'msgtype', 'varchar', 'NULL', 16, '', '', ], 'primary_key' => 'custmsgnum', 'unique' => [ ], @@ -4079,7 +4290,7 @@ sub tables_hashref { 'statustext', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'upgradenum', - 'unique' => [ [ 'upgradenum' ] ], + 'unique' => [], 'index' => [ [ 'upgrade' ] ], }, @@ -4127,28 +4338,93 @@ sub tables_hashref { 'index' => [], }, + 'svc_alarm' => { + 'columns' => [ + 'svcnum', 'int', '', '', '', '', + 'alarmsystemnum', 'int', '', '', '', '', + 'alarmtypenum', 'int', '', '', '', '', + 'alarmstationnum', 'int', '', '', '', '', + 'acctnum', 'varchar', '', $char_d, '', '', + '_password', 'varchar', '', $char_d, '', '', + 'location', 'varchar', 'NULL', $char_d, '', '', + #installer (rep) + ], + 'primary_key' => 'svcnum', + 'unique' => [], + 'index' => [], + }, + + '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'] ], + }, + + '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'] ], + }, + + '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'] ], + }, + 'svc_cable' => { 'columns' => [ - 'svcnum', 'int', '', '', '', '', - #nothing so far... there should be _something_ uniquely identifying - # each subscriber besides the device info...? + 'svcnum', 'int', '', '', '', '', + 'providernum', 'int', 'NULL', '', '', '', + 'ordernum', 'varchar', 'NULL', $char_d, '', '', + 'modelnum', 'int', 'NULL', '', '', '', + 'serialnum', 'varchar', 'NULL', $char_d, '', '', + 'mac_addr', 'varchar', 'NULL', 12, '', '', ], 'primary_key' => 'svcnum', 'unique' => [], 'index' => [], }, - 'cable_device' => { + 'cable_model' => { 'columns' => [ - 'devicenum', 'serial', '', '', '', '', - 'devicepart', 'int', '', '', '', '', - 'svcnum', 'int', '', '', '', '', - 'mac_addr', 'varchar', 'NULL', 12, '', '', - 'serial', 'varchar', 'NULL', $char_d, '', '', + 'modelnum', 'serial', '', '', '', '', + 'model_name', 'varchar', '', $char_d, '', '', + 'disabled', 'char', 'NULL', 1, '', '', ], - 'primary_key' => 'devicenum', - 'unique' => [ [ 'mac_addr' ], ], - 'index' => [ [ 'devicepart' ], [ 'svcnum' ], ], + 'primary_key' => 'modelnum', + 'unique' => [ [ 'model_name' ], ], + 'index' => [], + }, + + 'cable_provider' => { + 'columns' => [ + 'providernum', 'serial', '', '', '', '', + 'provider', 'varchar', '', $char_d, '', '', + 'disabled', 'char', 'NULL', 1, '', '', + ], + 'primary_key' => 'providernum', + 'unique' => [ [ 'provider' ], ], + 'index' => [], }, %{ tables_hashref_torrus() }, @@ -4176,6 +4452,40 @@ sub tables_hashref { 'index' => [ [ 'derivenum', ], ], }, + 'invoice_mode' => { + 'columns' => [ + 'modenum', 'serial', '', '', '', '', + 'agentnum', 'int', 'NULL', '', '', '', + 'modename', 'varchar', '', 32, '', '', + ], + 'primary_key' => 'modenum', + 'unique' => [ ], + 'index' => [ ], + }, + + 'invoice_conf' => { + 'columns' => [ + 'confnum', 'serial', '', '', '', '', + 'modenum', 'int', '', '', '', '', + 'locale', 'varchar', 'NULL', 16, '', '', + 'notice_name', 'varchar', 'NULL', 64, '', '', + 'subject', 'varchar', 'NULL', 64, '', '', + 'htmlnotes', 'text', 'NULL', '', '', '', + 'htmlfooter', 'text', 'NULL', '', '', '', + 'htmlsummary', 'text', 'NULL', '', '', '', + 'htmlreturnaddress', 'text', 'NULL', '', '', '', + 'latexnotes', 'text', 'NULL', '', '', '', + 'latexfooter', 'text', 'NULL', '', '', '', + 'latexsummary', 'text', 'NULL', '', '', '', + 'latexsmallfooter', 'text', 'NULL', '', '', '', + 'latexreturnaddress', 'text', 'NULL', '', '', '', + 'with_latexcoupon', 'char', 'NULL', '1', '', '', + 'lpr', 'varchar', 'NULL', $char_d, '', '', + ], + 'primary_key' => 'confnum', + 'unique' => [ [ 'modenum', 'locale' ] ], + 'index' => [ ], + }, # name type nullability length default local