X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2FSchema.pm;h=1aa2b69c4691263da480aa539df60924931953cd;hp=1aefbd0447e7a04a45a1e254cc2388488963c951;hb=652b2d9f68a558d03dbf441fd28ad17e847dff42;hpb=130c7801e718d55c500e9f777112f51905cad060 diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 1aefbd044..1aa2b69c4 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -117,6 +117,7 @@ sub dbdef_dist { #false laziness w/sub indices in DBIx::DBSchema::DBD (well, sorta) #and sub sql_create_table in DBIx::DBSchema::Table (slighty more?) my $unique = $tables_hashref->{$tablename}{'unique'}; + warn "missing index for $tablename\n" unless defined $tables_hashref->{$tablename}{'index'}; my @index = @{ $tables_hashref->{$tablename}{'index'} }; # kludge to avoid avoid "BLOB/TEXT column 'statustext' used in key @@ -193,34 +194,42 @@ sub dbdef_dist { my $tableobj = $dbdef->table($table) or die "unknown table $table"; - my %indices = $tableobj->indices; + my %h_indices = (); + + unless ( $table eq 'cust_event' ) { #others? + + my %indices = $tableobj->indices; - my %h_indices = map { - ( "h_$_" => - DBIx::DBSchema::Index->new({ - 'name' => 'h_'. $indices{$_}->name, - 'unique' => 0, - 'columns' => [ @{$indices{$_}->columns} ], - }) - ); - } - keys %indices; - - $h_indices{"h_${table}_srckey"} = DBIx::DBSchema::Index->new({ - 'name' => "h_${table}_srckey", - 'unique' => 0, - 'columns' => [ 'history_action', #right? - $tableobj->primary_key, - ], - }); - - $h_indices{"h_${table}_srckey2"} = DBIx::DBSchema::Index->new({ - 'name' => "h_${table}_srckey2", - 'unique' => 0, - 'columns' => [ 'history_date', - $tableobj->primary_key, - ], - }); + %h_indices = map { + ( "h_$_" => + DBIx::DBSchema::Index->new({ + 'name' => 'h_'. $indices{$_}->name, + 'unique' => 0, + 'columns' => [ @{$indices{$_}->columns} ], + }) + ); + } + keys %indices; + + $h_indices{"h_${table}_srckey"} = + DBIx::DBSchema::Index->new({ + 'name' => "h_${table}_srckey", + 'unique' => 0, + 'columns' => [ 'history_action', #right? + $tableobj->primary_key, + ], + }); + + $h_indices{"h_${table}_srckey2"} = + DBIx::DBSchema::Index->new({ + 'name' => "h_${table}_srckey2", + 'unique' => 0, + 'columns' => [ 'history_date', + $tableobj->primary_key, + ], + }); + + } my $h_tableobj = DBIx::DBSchema::Table->new( { 'name' => "h_$table", @@ -352,8 +361,8 @@ sub tables_hashref { 'invoice_template', 'varchar', 'NULL', $char_d, '', '', 'agent_custnum', 'int', 'NULL', '', '', '', 'disabled', 'char', 'NULL', 1, '', '', - 'username', 'varchar', 'NULL', $char_d, '', '', #deprecated - '_password', 'varchar', 'NULL', $char_d, '', '', #deprecated + 'username', 'varchar', 'NULL', $char_d, '', '', + '_password', 'varchar', 'NULL', $char_d, '', '', 'freq', 'int', 'NULL', '', '', '', #deprecated (never used) 'prog', @perl_type, '', '', #deprecated (never used) ], @@ -570,6 +579,7 @@ sub tables_hashref { 'itemdesc', 'varchar', 'NULL', $char_d, '', '', 'itemcomment', 'varchar', 'NULL', $char_d, '', '', 'section', 'varchar', 'NULL', $char_d, '', '', + 'freq', 'varchar', 'NULL', $char_d, '', '', 'quantity', 'int', 'NULL', '', '', '', 'unitsetup', @money_typen, '', '', 'unitrecur', @money_typen, '', '', @@ -767,8 +777,11 @@ sub tables_hashref { 'squelch_cdr','char', 'NULL', 1, '', '', 'cdr_termination_percentage', 'decimal', 'NULL', '', '', '', 'invoice_terms', 'varchar', 'NULL', $char_d, '', '', + 'credit_limit', @money_typen, '', '', 'archived', 'char', 'NULL', 1, '', '', 'email_csv_cdr', 'char', 'NULL', 1, '', '', + 'accountcode_cdr', 'char', 'NULL', 1, '', '', + 'billday', 'int', 'NULL', '', '', '', ], 'primary_key' => 'custnum', 'unique' => [ [ 'agentnum', 'agent_custid' ] ], @@ -829,8 +842,8 @@ sub tables_hashref { 'last', 'varchar', '', $char_d, '', '', # 'middle', 'varchar', 'NULL', $char_d, '', '', 'first', 'varchar', '', $char_d, '', '', - 'title', 'varchar', '', $char_d, '', '', #eg Head Bottle Washer - 'comment', 'varchar', '', $char_d, '', '', + 'title', 'varchar', 'NULL', $char_d, '', '', #eg Head Bottle Washer + 'comment', 'varchar', 'NULL', $char_d, '', '', 'disabled', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'contactnum', @@ -842,13 +855,13 @@ sub tables_hashref { 'contact_phone' => { 'columns' => [ - 'contactphonenum', 'serial', '', '', '', '', - 'contactnum', 'int', '', '', '', '', - 'phonetypenum', 'int', '', '', '', '', - 'countrycode', 'varchar', '', 3, '', '', - 'phonenum', 'varchar', '', 14, '', '', - 'extension', 'varchar', '', 7, '', '', - #?#'comment', 'varchar', '', $char_d, '', '', + 'contactphonenum', 'serial', '', '', '', '', + 'contactnum', 'int', '', '', '', '', + 'phonetypenum', 'int', '', '', '', '', + 'countrycode', 'varchar', '', 3, '', '', + 'phonenum', 'varchar', '', 14, '', '', + 'extension', 'varchar', 'NULL', 7, '', '', + #?#'comment', 'varchar', '', $char_d, '', '', ], 'primary_key' => 'contactphonenum', 'unique' => [], @@ -904,6 +917,7 @@ sub tables_hashref { 'zip', 'varchar', 'NULL', 10, '', '', 'country', 'char', '', 2, '', '', 'geocode', 'varchar', 'NULL', 20, '', '', + 'disabled', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'locationnum', 'unique' => [], @@ -927,6 +941,7 @@ sub tables_hashref { 'columns' => [ 'notenum', 'serial', '', '', '', '', 'custnum', 'int', '', '', '', '', + 'classnum', 'int', 'NULL', '', '', '', '_date', @date_type, '', '', 'otaker', 'varchar', 'NULL', 32, '', '', 'usernum', 'int', 'NULL', '', '', '', @@ -937,6 +952,17 @@ sub tables_hashref { 'index' => [ [ 'custnum' ], [ '_date' ], [ 'usernum' ], ], }, + 'cust_note_class' => { + 'columns' => [ + 'classnum', 'serial', '', '', '', '', + 'classname', 'varchar', '', $char_d, '', '', + 'disabled', 'char', 'NULL', 1, '', '', + ], + 'primary_key' => 'classnum', + 'unique' => [], + 'index' => [ ['disabled'] ], + }, + 'cust_category' => { 'columns' => [ 'categorynum', 'serial', '', '', '', '', @@ -1192,10 +1218,11 @@ sub tables_hashref { 'reason', 'varchar', 'NULL', $char_d, '', '', 'otaker', 'varchar', 'NULL', 32, '', '', 'usernum', 'int', 'NULL', '', '', '', + 'void_usernum', 'int', 'NULL', '', '', '', ], 'primary_key' => 'paynum', 'unique' => [], - 'index' => [ [ 'custnum' ], [ 'usernum' ], ], + 'index' => [ [ 'custnum' ], [ 'usernum' ], [ 'void_usernum' ] ], }, 'cust_bill_pay' => { @@ -1284,14 +1311,26 @@ sub tables_hashref { 'index' => [ ['batchnum'], ['invnum'], ['custnum'] ], }, + 'fcc477map' => { + 'columns' => [ + 'formkey', 'varchar', '', 255, '', '', + 'formvalue', 'text', 'NULL', '', '', '', + ], + 'primary_key' => 'formkey', + 'unique' => [], + 'index' => [], + }, + 'cust_pkg' => { 'columns' => [ 'pkgnum', 'serial', '', '', '', '', 'custnum', 'int', '', '', '', '', 'pkgpart', 'int', '', '', '', '', + 'pkgbatch', 'varchar', 'NULL', $char_d, '', '', 'locationnum', 'int', 'NULL', '', '', '', 'otaker', 'varchar', 'NULL', 32, '', '', 'usernum', 'int', 'NULL', '', '', '', + 'order_date', @date_type, '', '', 'start_date', @date_type, '', '', 'setup', @date_type, '', '', 'bill', @date_type, '', '', @@ -1300,6 +1339,7 @@ sub tables_hashref { 'adjourn', @date_type, '', '', 'cancel', @date_type, '', '', 'expire', @date_type, '', '', + 'contract_end', @date_type, '', '', 'change_date', @date_type, '', '', 'change_pkgnum', 'int', 'NULL', '', '', '', 'change_pkgpart', 'int', 'NULL', '', '', '', @@ -1307,13 +1347,16 @@ sub tables_hashref { 'manual_flag', 'char', 'NULL', 1, '', '', 'no_auto', 'char', 'NULL', 1, '', '', 'quantity', 'int', 'NULL', '', '', '', + 'agent_pkgid', 'int', 'NULL', '', '', '', + 'waive_setup', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'pkgnum', 'unique' => [], - 'index' => [ ['custnum'], ['pkgpart'], [ 'locationnum' ], [ 'usernum' ], - [ 'start_date' ], ['setup'], ['last_bill'], ['bill'], - ['susp'], ['adjourn'], ['expire'], ['cancel'], - ['change_date'], + 'index' => [ ['custnum'], ['pkgpart'], [ 'pkgbatch' ], [ 'locationnum' ], + [ 'usernum' ], [ 'agent_pkgid' ], + ['order_date'], [ 'start_date' ], ['setup'], ['bill'], + ['last_bill'], ['susp'], ['adjourn'], ['cancel'], + ['expire'], ['contract_end'], ['change_date'], ['no_auto'], ], }, @@ -1395,6 +1438,7 @@ sub tables_hashref { 'percent', 'decimal', '', '', '', '', 'months', 'decimal', 'NULL', '', '', '', 'disabled', 'char', 'NULL', 1, '', '', + 'setup', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'discountnum', 'unique' => [], @@ -1412,6 +1456,8 @@ sub tables_hashref { 'reason', 'varchar', '', $char_d, '', '', 'payby', 'char', '', 4, '', '', # CARD/BILL/COMP, should # be index into payby + 'recur_show_zero', 'char', 'NULL', 1, '', '', + 'setup_show_zero', 'char', 'NULL', 1, '', '', # table eventually 'payinfo', 'varchar', 'NULL', 512, '', '', #see cust_main above 'paymask', 'varchar', 'NULL', $char_d, '', '', @@ -1486,12 +1532,13 @@ sub tables_hashref { 'credit_weight', 'real', 'NULL', '', '', '', 'agentnum', 'int', 'NULL', '', '', '', 'fcc_ds0s', 'int', 'NULL', '', '', '', - 'no_auto', 'char', 'NULL', 1, '', '', + 'no_auto', 'char', 'NULL', 1, '', '', + 'recur_show_zero', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'pkgpart', 'unique' => [], 'index' => [ [ 'promo_code' ], [ 'disabled' ], [ 'classnum' ], - [ 'agentnum' ], + [ 'agentnum' ], ['no_auto'], ], }, @@ -1510,6 +1557,17 @@ sub tables_hashref { # XXX somewhat borked unique: we don't really want a hidden and unhidden # it turns out we'd prefer to use svc, bill, and invisibill (or something) + 'part_pkg_discount' => { + 'columns' => [ + 'pkgdiscountnum', 'serial', '', '', '', '', + 'pkgpart', 'int', '', '', '', '', + 'discountnum', 'int', '', '', '', '', + ], + 'primary_key' => 'pkgdiscountnum', + 'unique' => [ [ 'pkgpart', 'discountnum' ] ], + 'index' => [], + }, + 'part_pkg_taxclass' => { 'columns' => [ 'taxclassnum', 'serial', '', '', '', '', @@ -1583,7 +1641,9 @@ sub tables_hashref { 'pkgpart', 'int', '', '', '', '', 'svcpart', 'int', '', '', '', '', 'quantity', 'int', '', '', '', '', + 'setup_show_zero', 'char', 'NULL', 1, '', '', 'primary_svc','char', 'NULL', 1, '', '', + 'hidden', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'pkgsvcnum', 'unique' => [ ['pkgpart', 'svcpart'] ], @@ -1684,6 +1744,8 @@ sub tables_hashref { 'pbxsvc', 'int', 'NULL', '', '', '', 'last_login', @date_type, '', '', 'last_logout', @date_type, '', '', + #cardfortress field(s) + 'cf_privatekey', 'text', 'NULL', '', '', '', #communigate pro fields (quota = MaxAccountSize) 'cgp_aliases', 'varchar', 'NULL', 255, '', '', #settings @@ -1698,7 +1760,8 @@ sub tables_hashref { 'cgp_rpopallowed', 'char', 'NULL', 1, '', '', #RPOPAllowed 'cgp_mailtoall', 'char', 'NULL', 1, '', '', #MailToAll 'cgp_addmailtrailer', 'char', 'NULL', 1, '', '', #AddMailTrailer - #XXX archive messages, mailing lists + 'cgp_archiveafter', 'int', 'NULL', '', '', '', #ArchiveMessagesAfter + #XXX mailing lists #preferences 'cgp_deletemode', 'varchar', 'NULL', $char_d, '', '',#DeleteMode 'cgp_emptytrash', 'varchar', 'NULL', $char_d, '', '',#EmptyTrash @@ -1708,7 +1771,6 @@ sub tables_hashref { 'cgp_prontoskinname', 'varchar', 'NULL', $char_d, '', '',#ProntoSkinName 'cgp_sendmdnmode', 'varchar', 'NULL', $char_d, '', '',#SendMDNMode #mail -#vacation message, redirect all mail, mail rules #XXX RPOP settings ], 'primary_key' => 'svcnum', @@ -1753,11 +1815,14 @@ sub tables_hashref { 'setup_date', @date_type, '', '', 'renewal_interval', 'int', 'NULL', '', '', '', 'expiration_date', @date_type, '', '', + 'au_registrant_name', 'varchar', 'NULL', $char_d, '', '', + 'au_eligibility_type', 'varchar', 'NULL', $char_d, '', '', #communigate pro fields (quota = MaxAccountSize) 'max_accounts', 'int', 'NULL', '', '', '', 'trailer', 'text', 'NULL', '', '', '', 'cgp_aliases', 'varchar', 'NULL', 255, '', '', 'cgp_accessmodes','varchar','NULL', 255, '', '', #DomainAccessModes + 'cgp_certificatetype','varchar','NULL', $char_d, '', '', #settings 'acct_def_password_selfchange', 'char', 'NULL', 1, '', '', 'acct_def_password_recover', 'char', 'NULL', 1, 'Y', '', @@ -1770,7 +1835,7 @@ sub tables_hashref { 'acct_def_cgp_rpopallowed', 'char', 'NULL', 1, '', '', 'acct_def_cgp_mailtoall', 'char', 'NULL', 1, '', '', 'acct_def_cgp_addmailtrailer', 'char', 'NULL', 1, '', '', - #XXX archive messages + 'acct_def_cgp_archiveafter', 'int', 'NULL', '', '', '', #preferences 'acct_def_cgp_deletemode', 'varchar', 'NULL', $char_d, '', '', 'acct_def_cgp_emptytrash', 'varchar', 'NULL', $char_d, '', '', @@ -1779,8 +1844,6 @@ sub tables_hashref { 'acct_def_cgp_skinname', 'varchar', 'NULL', $char_d, '', '', 'acct_def_cgp_prontoskinname', 'varchar', 'NULL', $char_d, '', '', 'acct_def_cgp_sendmdnmode', 'varchar', 'NULL', $char_d, '', '', - #mail - #XXX rules, archive rule, spam foldering rule(s) ], 'primary_key' => 'svcnum', 'unique' => [ ], @@ -1795,6 +1858,7 @@ sub tables_hashref { 'recaf', 'char', '', 2, '', '', 'rectype', 'varchar', '', 5, '', '', 'recdata', 'varchar', '', 255, '', '', + 'ttl', 'int', 'NULL', '', '', '', ], 'primary_key' => 'recnum', 'unique' => [], @@ -2008,6 +2072,7 @@ sub tables_hashref { 'part_export' => { 'columns' => [ 'exportnum', 'serial', '', '', '', '', + 'exportname', 'varchar', 'NULL', $char_d, '', '', 'machine', 'varchar', '', $char_d, '', '', 'exporttype', 'varchar', '', $char_d, '', '', 'nodomain', 'char', 'NULL', 1, '', '', @@ -2138,6 +2203,7 @@ sub tables_hashref { 'altitude', 'decimal', 'NULL', '', '', '', 'vlan_profile', 'varchar', 'NULL', $char_d, '', '', 'performance_profile', 'varchar', 'NULL', $char_d, '', '', + 'plan_id', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'svcnum', 'unique' => [ [ 'mac_addr' ] ], @@ -2173,12 +2239,18 @@ sub tables_hashref { 'acct_snarf' => { 'columns' => [ - 'snarfnum', 'int', '', '', '', '', - 'svcnum', 'int', '', '', '', '', - 'machine', 'varchar', '', 255, '', '', - 'protocol', 'varchar', '', $char_d, '', '', - 'username', 'varchar', '', $char_d, '', '', - '_password', 'varchar', '', $char_d, '', '', + 'snarfnum', 'serial', '', '', '', '', + 'snarfname', 'varchar', 'NULL', $char_d, '', '', + 'svcnum', 'int', '', '', '', '', + 'machine', 'varchar', '', 255, '', '', + 'protocol', 'varchar', '', $char_d, '', '', + 'username', 'varchar', '', $char_d, '', '', + '_password', 'varchar', '', $char_d, '', '', + 'check_freq', 'int', 'NULL', '', '', '', + 'leavemail', 'char', 'NULL', 1, '', '', + 'apop', 'char', 'NULL', 1, '', '', + 'tls', 'char', 'NULL', 1, '', '', + 'mailbox', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'snarfnum', 'unique' => [], @@ -2187,8 +2259,8 @@ sub tables_hashref { 'svc_external' => { 'columns' => [ - 'svcnum', 'int', '', '', '', '', - 'id', 'int', 'NULL', '', '', '', + 'svcnum', 'int', '', '', '', '', + 'id', 'bigint', 'NULL', '', '', '', 'title', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'svcnum', @@ -2249,12 +2321,11 @@ sub tables_hashref { 'orig_regionnum', 'int', 'NULL', '', '', '', 'dest_regionnum', 'int', '', '', '', '', 'min_included', 'int', '', '', '', '', - 'conn_charge', @money_type, '0', '', #'decimal','','10,5','0','', + 'conn_charge', 'decimal', '', '10,4', '0', '', 'conn_sec', 'int', '', '', '0', '', 'min_charge', 'decimal', '', '10,5', '', '', #@money_type, '', '', 'sec_granularity', 'int', '', '', '', '', 'ratetimenum', 'int', 'NULL', '', '', '', - #time period (link to table of periods)? 'classnum', 'int', 'NULL', '', '', '', ], 'primary_key' => 'ratedetailnum', @@ -2412,14 +2483,16 @@ sub tables_hashref { 'payby', 'char', '', 4, '', '', 'payinfo', 'varchar', '', 128, '', '', #say, a 512-big digest _hex encoded #'paymask', 'varchar', 'NULL', $char_d, '', '' - '_date', @date_type, '', '', - 'otaker', 'varchar', 'NULL', 32, '', '', - 'usernum', 'int', 'NULL', '', '', '', + '_date', @date_type, '', '', + 'end_date', @date_type, '', '', + 'otaker', 'varchar', 'NULL', 32, '', '', + 'usernum', 'int', 'NULL', '', '', '', + 'bantype', 'varchar', 'NULL', $char_d, '', '', 'reason', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'bannum', - 'unique' => [ [ 'payby', 'payinfo' ] ], - 'index' => [ [ 'usernum' ] ], + 'unique' => [], + 'index' => [ [ 'payby', 'payinfo' ], [ 'usernum' ], ], }, 'pkg_category' => { @@ -2441,6 +2514,7 @@ sub tables_hashref { 'classname', 'varchar', '', $char_d, '', '', 'categorynum', 'int', 'NULL', '', '', '', 'disabled', 'char', 'NULL', 1, '', '', + 'fcc_ds0s', 'int', 'NULL', '', '', '', ], 'primary_key' => 'classnum', 'unique' => [], @@ -2488,11 +2562,13 @@ sub tables_hashref { 'uniqueid', 'varchar', '', 32, \"''", '', 'userfield', 'varchar', '', 255, \"''", '', + 'max_callers', 'int', 'NULL', '', '', '', + ### # fields for unitel/RSLCOM/convergent that don't map well to asterisk # defaults # though these are now used elsewhere: - # charged_party, upstream_price, rated_price, carrierid + # charged_party, upstream_price, rated_price, carrierid, cdrtypenum ### #cdr_type: Usage = 1, S&E = 7, OC&C = 8 @@ -2501,7 +2577,7 @@ sub tables_hashref { 'charged_party', 'varchar', 'NULL', $char_d, '', '', 'upstream_currency', 'char', 'NULL', 3, '', '', - 'upstream_price', 'decimal', 'NULL', '10,2', '', '', + 'upstream_price', 'decimal', 'NULL', '10,4', '', '', 'upstream_rateplanid', 'int', 'NULL', '', '', '', #? # how it was rated internally... @@ -2538,10 +2614,14 @@ sub tables_hashref { #an indexed place to put big numbers 'cdrid', 'bigint', 'NULL', '', '', '', + #for taqua accountcode rewriting, for starters + 'sessionnum', 'int', 'NULL', '', '', '', + 'subscriber', 'varchar', 'NULL', $char_d, '', '', + #old - 'cdrbatch', 'varchar', 'NULL', 255, '', '', + 'cdrbatch', 'varchar', 'NULL', 255, '', '', #new - 'cdrbatchnum', 'int', 'NULL', '', '', '', + 'cdrbatchnum', 'int', 'NULL', '', '', '', ], 'primary_key' => 'acctid', @@ -2549,6 +2629,7 @@ sub tables_hashref { 'index' => [ [ 'calldate' ], [ 'src' ], [ 'dst' ], [ 'dcontext' ], [ 'charged_party' ], [ 'accountcode' ], [ 'carrierid' ], [ 'cdrid' ], + [ 'sessionnum' ], [ 'subscriber' ], [ 'freesidestatus' ], [ 'freesiderewritestatus' ], [ 'cdrbatch' ], [ 'cdrbatchnum' ], ], @@ -2743,6 +2824,16 @@ sub tables_hashref { 'pbxsvc', 'int', 'NULL', '', '', '', 'domsvc', 'int', 'NULL', '', '', '', 'locationnum', 'int', 'NULL', '', '', '', + 'forwarddst', 'varchar', 'NULL', 15, '', '', + 'email', 'varchar', 'NULL', 255, '', '', + 'lnp_status', 'varchar', 'NULL', $char_d, '', '', + 'portable', 'char', 'NULL', 1, '', '', + 'lrn', 'char', 'NULL', 10, '', '', + 'lnp_desired_due_date', 'int', 'NULL', '', '', '', + 'lnp_due_date', 'int', 'NULL', '', '', '', + 'lnp_other_provider', 'varchar', 'NULL', $char_d, '', '', + 'lnp_other_provider_account', 'varchar', 'NULL', $char_d, '', '', + 'lnp_reject_reason', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'svcnum', 'unique' => [], @@ -2767,7 +2858,7 @@ sub tables_hashref { 'columns' => [ 'devicepart', 'serial', '', '', '', '', 'devicename', 'varchar', '', $char_d, '', '', - #'classnum', #tie to an inventory class? + 'inventory_classnum', 'int', 'NULL', '', '', '', ], 'primary_key' => 'devicepart', 'unique' => [ [ 'devicename' ] ], #? @@ -2784,6 +2875,10 @@ sub tables_hashref { 'nxx', 'char', 'NULL', 3, '', '', 'station', 'char', 'NULL', 4, '', '', 'name', 'varchar', 'NULL', $char_d, '', '', + 'rate_center_abbrev', 'varchar', 'NULL', $char_d, '', '', + 'latanum', 'int', 'NULL', '', '', '', + 'msanum', 'int', 'NULL', '', '', '', + 'ordernum', 'int', 'NULL', '', '', '', 'svcnum', 'int', 'NULL', '', '', '', 'availbatch', 'varchar', 'NULL', $char_d, '', '', ], @@ -2795,8 +2890,82 @@ sub tables_hashref { [ 'exportnum', 'countrycode', 'npa', 'nxx', 'station' ], # # [ 'svcnum' ], [ 'availbatch' ], + [ 'latanum' ], ], }, + + 'lata' => { + 'columns' => [ + 'latanum', 'int', '', '', '', '', + 'description', 'varchar', '', $char_d, '', '', + 'have_usage', 'int', 'NULL', '', '', '', + ], + 'primary_key' => 'latanum', + 'unique' => [], + 'index' => [], + }, + + 'msa' => { + 'columns' => [ + 'msanum', 'int', '', '', '', '', + 'description', 'varchar', '', $char_d, '', '', + ], + 'primary_key' => 'msanum', + 'unique' => [], + 'index' => [], + }, + + 'rate_center' => { + 'columns' => [ + 'ratecenternum', 'serial', '', '', '', '', + 'description', 'varchar', '', $char_d, '', '', + ], + 'primary_key' => 'ratecenternum', + 'unique' => [], + 'index' => [], + }, + + 'did_vendor' => { + 'columns' => [ + 'vendornum', 'serial', '', '', '', '', + 'vendorname', 'varchar', '', $char_d, '', '', + ], + 'primary_key' => 'vendornum', + 'unique' => [], + 'index' => [], + }, + + 'did_order_item' => { + 'columns' => [ + 'orderitemnum', 'serial', '', '', '', '', + 'ordernum', 'int', '', '', '', '', + 'msanum', 'int', 'NULL', '', '', '', + 'npa', 'int', 'NULL', '', '', '', + 'latanum', 'int', 'NULL', '', '', '', + 'ratecenternum', 'int', 'NULL', '', '', '', + 'state', 'char', 'NULL', 2, '', '', + 'quantity', 'int', '', '', '', '', + 'custnum', 'int', 'NULL', '', '', '', + ], + 'primary_key' => 'orderitemnum', + 'unique' => [], + 'index' => [], + }, + + 'did_order' => { + 'columns' => [ + 'ordernum', 'serial', '', '', '', '', + 'vendornum', 'int', '', '', '', '', + 'vendor_order_id', 'varchar', 'NULL', $char_d, '', '', + 'custnum', 'int', 'NULL', '', '', '', + 'submitted', 'int', '', '', '', '', + 'confirmed', 'int', 'NULL', '', '', '', + 'received', 'int', 'NULL', '', '', '', + ], + 'primary_key' => 'ordernum', + 'unique' => [ [ 'vendornum', 'vendor_order_id' ] ], + 'index' => [], + }, 'reason_type' => { 'columns' => [ @@ -2939,12 +3108,74 @@ sub tables_hashref { 'mime_type', 'varchar', '', $char_d, '', '', 'body', 'blob', 'NULL', '', '', '', 'disabled', 'char', 'NULL', 1, '', '', + 'from_addr', 'varchar', 'NULL', 255, '', '', + 'bcc_addr', 'varchar', 'NULL', 255, '', '', ], 'primary_key' => 'msgnum', 'unique' => [ ['msgname', 'mime_type'] ], 'index' => [ ['agentnum'], ] }, + 'cust_msg' => { + 'columns' => [ + 'custmsgnum', 'serial', '', '', '', '', + 'custnum', 'int', '', '', '', '', + 'msgnum', 'int', 'NULL', '', '', '', + '_date', @date_type, '', '', + 'env_from', 'varchar', 'NULL', 255, '', '', + 'env_to', 'varchar', 'NULL', 255, '', '', + 'header', 'blob', 'NULL', '', '', '', + 'body', 'blob', 'NULL', '', '', '', + 'error', 'varchar', 'NULL', 255, '', '', + 'status', 'varchar', '',$char_d, '', '', + ], + 'primary_key' => 'custmsgnum', + 'unique' => [ ], + 'index' => [ ['custnum'], ], + }, + + 'svc_cert' => { + 'columns' => [ + 'svcnum', 'int', '', '', '', '', + 'recnum', 'int', 'NULL', '', '', '', + 'privatekey', 'text', 'NULL', '', '', '', + 'csr', 'text', 'NULL', '', '', '', + 'certificate', 'text', 'NULL', '', '', '', + 'cacert', 'text', 'NULL', '', '', '', + 'common_name', 'varchar', 'NULL', $char_d, '', '', + 'organization', 'varchar', 'NULL', $char_d, '', '', + 'organization_unit', 'varchar', 'NULL', $char_d, '', '', + 'city', 'varchar', 'NULL', $char_d, '', '', + 'state', 'varchar', 'NULL', $char_d, '', '', + 'country', 'char', 'NULL', 2, '', '', + 'cert_contact', 'varchar', 'NULL', $char_d, '', '', + ], + 'primary_key' => 'svcnum', + 'unique' => [], + 'index' => [], #recnum + }, + + 'svc_port' => { + 'columns' => [ + 'svcnum', 'int', '', '', '', '', + ], + 'primary_key' => 'svcnum', + 'unique' => [], + 'index' => [], #recnum + }, + + 'areacode' => { + 'columns' => [ + 'areanum', 'serial', '', '', '', '', + 'code', 'char', '', 3, '', '', + 'country', 'char', 'NULL', 2, '', '', + 'state', 'char', 'NULL', 2, '', '', + 'description','varchar', 'NULL', 255, '', '', + ], + 'primary_key' => 'areanum', + 'unique' => [ [ 'code' ] ], + 'index' => [], + }, # name type nullability length default local