X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2FSchema.pm;h=569401b1d5b54c5e33e0b7af8c6ca6322a5b74ef;hp=1630f02c3c3b055a3458afe755934db159b958ae;hb=d2a42bce5c5557966cc0f0966e4b9d14fff576a0;hpb=ca78f4530f7d5ee0b1b9f708e318108ad3aa1a7a diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 1630f02c3..569401b1d 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -495,8 +495,44 @@ sub tables_hashref { my $username_len = 64; #usernamemax config file - # name type nullability length default local + # Return a hashref defining the entire application database schema + # Each key of the hashref contains a structure describing a database table + # + # table_name => { + # columns => [...], + # primary_key => 'column', + # unique => [column,column,...], + # index => [[column],[column,column],...], + # foreign_keys => [{...},{...},...], + # } + # + # + # columns => [ + # + # 'column_name', + # + # 'column_type', + # + # 'NULL' or '', # 'NULL' : Allow null values + # # '' : Disallow null values + # + # 'length', # Column size value. eg: + # # 40 : VARCHAR(40) + # # '10,2' : FLOAT(10,2) + # + # 'default', # Default column value for a new record + # # (Unclear if setting this to '' results in a default + # # value of NULL or empty string?) + # + # '', # local ? + # + # name, type, nullability, length, default, local, + # name, type, nullability, length, default, local, + # ... + # + # ], + # name type nullability length default local return { 'agent' => { @@ -658,6 +694,7 @@ sub tables_hashref { 'title', 'varchar', 'NULL', $char_d, '', '', 'body', 'blob', 'NULL', '', '', '', 'disabled', @date_type, '', '', + 'attachnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'attachnum', 'unique' => [], @@ -695,6 +732,7 @@ sub tables_hashref { 'statementnum', 'int', 'NULL', '', '', '', #invoice aggregate statements 'agent_invid', 'int', 'NULL', '', '', '', #(varchar?) importing legacy 'promised_date', @date_type, '', '', + 'taxengine_request', 'text', 'NULL', '', '', '', 'pending', 'char', 'NULL', 1, '', '', ], @@ -732,6 +770,7 @@ sub tables_hashref { 'statementnum', 'int', 'NULL', '', '', '', #invoice aggregate statements 'agent_invid', 'int', 'NULL', '', '', '', #(varchar?) importing legacy 'promised_date', @date_type, '', '', + 'taxengine_request', 'text', 'NULL', '', '', '', #void fields 'void_date', @date_type, '', '', @@ -986,6 +1025,7 @@ sub tables_hashref { 'quantity', 'int', 'NULL', '', '', '', 'hidden', 'char', 'NULL', 1, '', '', 'feepart', 'int', 'NULL', '', '', '', + 'billpkgnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpkgnum', 'unique' => [], @@ -1024,6 +1064,7 @@ sub tables_hashref { 'startdate', @date_type, '', '', 'regionname', 'varchar', 'NULL', $char_d, '', '', 'detail', 'varchar', '', 255, '', '', + 'detailnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'detailnum', 'unique' => [], @@ -1056,6 +1097,7 @@ sub tables_hashref { 'post_total', 'char', 'NULL', 1, '', '', 'type', 'char', 'NULL', 1, '', '', 'summary', 'char', 'NULL', 1, '', '', + 'billpkgdisplaynum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpkgdisplaynum', 'unique' => [], @@ -1121,6 +1163,7 @@ sub tables_hashref { 'amount', @money_type, '', '', 'currency', 'char', 'NULL', 3, '', '', 'taxable_billpkgnum', 'int', 'NULL', '', '', '', + 'billpkgtaxlocationnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpkgtaxlocationnum', 'unique' => [], @@ -1205,6 +1248,7 @@ sub tables_hashref { 'reason', 'varchar', 'NULL', $char_d, '', '', 'reasonnum', 'int', 'NULL', '', '', '', 'void_usernum', 'int', 'NULL', '', '', '', + 'billpkgnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpkgnum', 'unique' => [], @@ -1248,6 +1292,7 @@ sub tables_hashref { 'startdate', @date_type, '', '', 'regionname', 'varchar', 'NULL', $char_d, '', '', 'detail', 'varchar', '', 255, '', '', + 'detailnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'detailnum', 'unique' => [], @@ -1278,6 +1323,7 @@ sub tables_hashref { 'post_total', 'char', 'NULL', 1, '', '', 'type', 'char', 'NULL', 1, '', '', 'summary', 'char', 'NULL', 1, '', '', + 'billpkgdisplaynum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpkgdisplaynum', 'unique' => [], @@ -1300,6 +1346,7 @@ sub tables_hashref { 'amount', @money_type, '', '', 'currency', 'char', 'NULL', 3, '', '', 'taxable_billpkgnum', 'int', 'NULL', '', '', '', + 'billpkgtaxlocationnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpkgtaxlocationnum', 'unique' => [], @@ -1363,7 +1410,8 @@ sub tables_hashref { 'commission_salesnum', 'int', 'NULL', '', '', '', # 'commission_pkgnum', 'int', 'NULL', '', '', '', # 'commission_invnum', 'int', 'NULL', '', '', '', - 'credbatch', 'varchar', 'NULL', $char_d, '', '', + 'credbatch', 'varchar', 'NULL', $char_d, '', '', + 'crednum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'crednum', 'unique' => [], @@ -1427,8 +1475,9 @@ sub tables_hashref { #void fields 'void_date', @date_type, '', '', 'void_reason', 'varchar', 'NULL', $char_d, '', '', - 'void_reasonnum', 'int', 'NULL', '', '', '', + 'void_reasonnum', 'int', 'NULL', '', '', '', 'void_usernum', 'int', 'NULL', '', '', '', + 'crednum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'crednum', 'unique' => [], @@ -1487,6 +1536,7 @@ sub tables_hashref { '_date', @date_type, '', '', 'amount', @money_type, '', '', 'pkgnum', 'int', 'NULL', '', '', '', #desired pkgnum for pkg-balances + 'creditbillnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'creditbillnum', 'unique' => [], @@ -1515,6 +1565,7 @@ sub tables_hashref { 'setuprecur', 'varchar', '', $char_d, '', '', 'sdate', @date_type, '', '', 'edate', @date_type, '', '', + 'creditbillpkgnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'creditbillpkgnum', 'unique' => [], @@ -1620,6 +1671,8 @@ sub tables_hashref { 'ship_mobile', 'varchar', 'NULL', 12, '', '', 'currency', 'char', 'NULL', 3, '', '', + 'is_tokenized', 'char', 'NULL', '1', '', '', + 'geocode', 'varchar', 'NULL', 20, '', '', 'censustract', 'varchar', 'NULL', 20, '', '', # 7 to save space? 'censusyear', 'char', 'NULL', 4, '', '', @@ -1655,6 +1708,7 @@ sub tables_hashref { 'invoice_attn', 'varchar', 'NULL', $char_d, '', '', 'invoice_ship_address', 'char', 'NULL', 1, '', '', 'postal_invoice', 'char', 'NULL', 1, '', '', + 'paymentreceipt_noemail', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'custnum', 'unique' => [ [ 'agentnum', 'agent_custid' ] ], @@ -1666,6 +1720,7 @@ sub tables_hashref { [ 'archived' ], [ 'ship_locationnum' ], [ 'bill_locationnum' ], + [ 'is_tokenized' ], ], 'foreign_keys' => [ { columns => [ 'agentnum' ], @@ -1718,10 +1773,11 @@ sub tables_hashref { 'paytype', 'varchar', 'NULL', $char_d, '', '', 'payip', 'varchar', 'NULL', 15, '', '', 'locationnum', 'int', 'NULL', '', '', '', + 'is_tokenized', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'custpaybynum', 'unique' => [], - 'index' => [ [ 'custnum' ] ], + 'index' => [ [ 'custnum' ], [ 'is_tokenized' ] ], 'foreign_keys' => [ { columns => [ 'custnum' ], table => 'cust_main', @@ -1737,6 +1793,7 @@ sub tables_hashref { 'classnum', 'serial', '', '', '', '', 'classname', 'varchar', '', $char_d, '', '', 'disabled', 'char', 'NULL', 1, '', '', + 'classnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'classnum', 'unique' => [], @@ -1751,7 +1808,8 @@ sub tables_hashref { 'classnum', 'int', 'NULL', '', '', '', 'comment', 'varchar', 'NULL', 255, '', '', 'selfservice_access', 'char', 'NULL', 1, '', '', - 'invoice_dest', 'char', 'NULL', 1, '', '', + 'invoice_dest', 'char', 'NULL', 1, '', '', # Y or NULL + 'message_dest', 'char', 'NULL', 1, '', '', # Y or NULL ], 'primary_key' => 'custcontactnum', 'unique' => [ [ 'custnum', 'contactnum' ], ], @@ -1811,6 +1869,7 @@ sub tables_hashref { '_password_encoding', 'varchar', 'NULL', $char_d, '', '', 'disabled', 'char', 'NULL', 1, '', '', 'invoice_dest', 'char', 'NULL', 1, '', '', + 'contactnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'contactnum', 'unique' => [], @@ -1842,6 +1901,7 @@ sub tables_hashref { 'phonenum', 'varchar', '', 14, '', '', 'extension', 'varchar', 'NULL', 7, '', '', #?#'comment', 'varchar', '', $char_d, '', '', + 'contactphonenum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'contactphonenum', 'unique' => [], @@ -1872,6 +1932,7 @@ sub tables_hashref { 'contactemailnum', 'serial', '', '', '', '', 'contactnum', 'int', '', '', '', '', 'emailaddress', 'varchar', '', $char_d, '', '', + 'contactemailnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'contactemailnum', #'unique' => [ [ 'contactnum', 'emailaddress' ], ], @@ -1914,14 +1975,15 @@ sub tables_hashref { 'quotation' => { 'columns' => [ #regular fields - 'quotationnum', 'serial', '', '', '', '', - 'prospectnum', 'int', 'NULL', '', '', '', - 'custnum', 'int', 'NULL', '', '', '', - '_date', @date_type, '', '', - 'disabled', 'char', 'NULL', 1, '', '', - 'usernum', 'int', 'NULL', '', '', '', - 'close_date', @date_type, '', '', - 'confidence', 'int', 'NULL', '', '', '', + 'quotationnum', 'serial', '', '', '', '', + 'prospectnum', 'int', 'NULL', '', '', '', + 'custnum', 'int', 'NULL', '', '', '', + '_date', @date_type, '', '', + 'disabled', 'char', 'NULL', 1, '', '', + 'usernum', 'int', 'NULL', '', '', '', + 'close_date', @date_type, '', '', + 'confidence', 'int', 'NULL', '', '', '', + 'quotation_description', 'varchar', 'NULL', '50', '', '', #'total', @money_type, '', '', #'quotation_term', 'varchar', 'NULL', $char_d, '', '', ], @@ -2059,6 +2121,7 @@ sub tables_hashref { 'incorporated', 'char', 'NULL', 1, '', '', 'disabled', 'char', 'NULL', 1, '', '', + 'locationnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'locationnum', 'unique' => [], @@ -2081,6 +2144,7 @@ sub tables_hashref { 'destnum', 'serial', '', '', '', '', 'custnum', 'int', '', '', '', '', 'dest', 'varchar', '', $char_d, '', '', + 'destnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'destnum', 'unique' => [], @@ -2122,6 +2186,7 @@ sub tables_hashref { 'usernum', 'int', 'NULL', '', '', '', 'comments', 'text', 'NULL', '', '', '', 'sticky', 'int', '', '', 0, '', + 'notenum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'notenum', 'unique' => [], @@ -2155,7 +2220,8 @@ sub tables_hashref { 'categorynum', 'serial', '', '', '', '', 'categoryname', 'varchar', '', $char_d, '', '', 'weight', 'int', 'NULL', '', '', '', - 'disabled', 'char', 'NULL', 1, '', '', + 'disabled', 'char', 'NULL', 1, '', '', + 'categorynum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'categorynum', 'unique' => [], @@ -2273,6 +2339,7 @@ sub tables_hashref { 'setuptax', 'char', 'NULL', 1, '', '', # Y = setup tax exempt 'recurtax', 'char', 'NULL', 1, '', '', # Y = recur tax exempt 'source', 'varchar', 'NULL', $char_d, '', '', + 'charge_prediscount', 'char', 'NULL', 1, '', '', # Y = charge this tax pre discount ], 'primary_key' => 'taxnum', 'unique' => [], @@ -2330,6 +2397,7 @@ sub tables_hashref { 'taxratelocationnum', 'serial', '', '', '', '', 'data_vendor', 'varchar', 'NULL', $char_d, '', '', 'geocode', 'varchar', '', 20, '', '', + 'district', 'varchar', 'NULL', $char_d, '', '', 'city', 'varchar', 'NULL', $char_d, '', '', 'county', 'varchar', 'NULL', $char_d, '', '', 'state', 'char', 'NULL', 2, '', '', @@ -2415,11 +2483,13 @@ sub tables_hashref { 'manual', 'char', 'NULL', 1, '', '', 'discount_term','int', 'NULL', '', '', '', 'failure_status','varchar','NULL', 16, '', '', + 'is_tokenized', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'paypendingnum', 'unique' => [ [ 'payunique' ] ], 'index' => [ [ 'custnum' ], [ 'status' ], ['paynum'], ['void_paynum'], ['jobnum'], ['invnum'], + [ 'is_tokenized' ], ], 'foreign_keys' => [ { columns => [ 'custnum' ], @@ -2466,7 +2536,8 @@ sub tables_hashref { 'closed', 'char', 'NULL', 1, '', '', 'pkgnum', 'int', 'NULL', '', '', '', #desired pkgnum for pkg-balances 'no_auto_apply', 'char', 'NULL', 1, '', '', - + 'is_tokenized', 'char', 'NULL', 1, '', '', + # cash/check deposit info fields 'bank', 'varchar', 'NULL', $char_d, '', '', 'depositor', 'varchar', 'NULL', $char_d, '', '', @@ -2480,11 +2551,12 @@ sub tables_hashref { 'processor', 'varchar', 'NULL', $char_d, '', '', # module name 'auth', 'varchar', 'NULL', 16, '', '', # CC auth number 'order_number','varchar', 'NULL', 256, '', '', # transaction number + 'paynum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'paynum', #i guess not now, with cust_pay_pending, if we actually make it here, we _do_ want to record it# 'unique' => [ [ 'payunique' ] ], 'index' => [ ['custnum'], ['paybatch'], ['payby'], ['_date'], - ['usernum'], + ['usernum'], ['is_tokenized'], ], 'foreign_keys' => [ { columns => [ 'custnum' ], @@ -2522,6 +2594,7 @@ sub tables_hashref { 'paybatch', 'varchar', 'NULL', $char_d, '', '', #for auditing purposes. 'closed', 'char', 'NULL', 1, '', '', 'pkgnum', 'int', 'NULL', '', '', '', #desired pkgnum for pkg-balances + 'is_tokenized', 'char', 'NULL', 1, '', '', # cash/check deposit info fields 'bank', 'varchar', 'NULL', $char_d, '', '', @@ -2541,10 +2614,14 @@ sub tables_hashref { 'reason', 'varchar', 'NULL', $char_d, '', '', 'reasonnum', 'int', 'NULL', '', '', '', 'void_usernum', 'int', 'NULL', '', '', '', + + 'paynum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'paynum', 'unique' => [], - 'index' => [ ['custnum'], ['usernum'], ['void_usernum'] ], + 'index' => [ ['custnum'], ['usernum'], ['void_usernum'], + ['is_tokenized'], + ], 'foreign_keys' => [ { columns => [ 'custnum' ], table => 'cust_main', @@ -2579,6 +2656,7 @@ sub tables_hashref { 'amount', @money_type, '', '', '_date', @date_type, '', '', 'pkgnum', 'int', 'NULL', '', '', '', #desired pkgnum for pkg-balances + 'billpaynum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpaynum', 'unique' => [], @@ -2628,6 +2706,7 @@ sub tables_hashref { 'setuprecur', 'varchar', '', $char_d, '', '', 'sdate', @date_type, '', '', 'edate', @date_type, '', '', + 'billpaypkgnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpaypkgnum', 'unique' => [], @@ -2658,6 +2737,7 @@ sub tables_hashref { 'upload', @date_type, '', '', 'title', 'varchar', 'NULL',255, '', '', 'processor_id', 'varchar', 'NULL',255, '', '', + 'type', 'char', '', 6, 'DEBIT', '', # DEBIT/CREDIT ], 'primary_key' => 'batchnum', 'unique' => [], @@ -2685,6 +2765,7 @@ sub tables_hashref { 'country', 'char', '', 2, '', '', 'payby', 'char', '', 4, '', '', 'payinfo', 'varchar', 'NULL', 512, '', '', + #'paymask', 'varchar', 'NULL', $char_d, '', '', #'exp', @date_type, '', '', 'exp', 'varchar', 'NULL', 11, '', '', 'payname', 'varchar', 'NULL', $char_d, '', '', @@ -2694,10 +2775,11 @@ sub tables_hashref { 'status', 'varchar', 'NULL', $char_d, '', '', 'failure_status','varchar', 'NULL', 16, '', '', 'error_message', 'varchar', 'NULL', $char_d, '', '', + 'paycode', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'paybatchnum', 'unique' => [], - 'index' => [ ['batchnum'], ['invnum'], ['custnum'] ], + 'index' => [ ['batchnum'], ['invnum'], ['custnum'],['status'] ], 'foreign_keys' => [ { columns => [ 'batchnum' ], table => 'pay_batch', @@ -2838,6 +2920,7 @@ sub tables_hashref { 'pkgnum', 'int', '', '', '', '', 'optionname', 'varchar', '', $char_d, '', '', 'optionvalue', 'text', 'NULL', '', '', '', + 'optionnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'optionnum', 'unique' => [], @@ -2856,6 +2939,7 @@ sub tables_hashref { 'detail', 'varchar', '', 2*$char_d, '', '', 'detailtype', 'char', '', 1, '', '', #"I"nvoice or "C"omment 'weight', 'int', '', '', '', '', + 'pkgdetailnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'pkgdetailnum', 'unique' => [], @@ -2876,6 +2960,7 @@ sub tables_hashref { 'otaker', 'varchar', 'NULL', 32, '', '', 'usernum', 'int', 'NULL', '', '', '', 'date', @date_type, '', '', + 'num_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'num', 'unique' => [], @@ -2927,6 +3012,7 @@ sub tables_hashref { 'usernum', 'int', 'NULL', '', '', '', 'disabled', 'char', 'NULL', 1, '', '', 'setuprecur', 'char', 'NULL', 5, '', '', + 'pkgdiscountnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'pkgdiscountnum', 'unique' => [], @@ -2991,6 +3077,7 @@ sub tables_hashref { 'pkgdiscountnum', 'int', '', '', '', '', 'amount', @money_type, '', '', 'months', 'decimal', 'NULL', '7,4', '', '', + 'billpkgdiscountnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpkgdiscountnum', 'unique' => [], @@ -3012,6 +3099,7 @@ sub tables_hashref { 'pkgdiscountnum', 'int', '', '', '', '', 'amount', @money_type, '', '', 'months', 'decimal', 'NULL', '7,4', '', '', + 'billpkgdiscountnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpkgdiscountnum', 'unique' => [], @@ -3038,6 +3126,7 @@ sub tables_hashref { 'disabled', 'char', 'NULL', 1, '', '', 'setup', 'char', 'NULL', 1, '', '', #'linked', 'char', 'NULL', 1, '', '', + 'discountnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'discountnum', 'unique' => [], @@ -3055,6 +3144,7 @@ sub tables_hashref { 'classname', 'varchar', '', $char_d, '', '', #'categorynum', 'int', 'NULL', '', '', '', 'disabled', 'char', 'NULL', 1, '', '', + 'classnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'classnum', 'unique' => [], @@ -3086,10 +3176,12 @@ sub tables_hashref { 'processor', 'varchar', 'NULL', $char_d, '', '', # module name 'auth', 'varchar','NULL',16, '', '', # CC auth number 'order_number', 'varchar','NULL',$char_d, '', '', # transaction number + 'is_tokenized', 'char', 'NULL', 1, '', '', + 'refundnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'refundnum', 'unique' => [], - 'index' => [ ['custnum'], ['_date'], [ 'usernum' ], ], + 'index' => [ ['custnum'], ['_date'], [ 'usernum' ], ['is_tokenized'] ], 'foreign_keys' => [ { columns => [ 'custnum' ], table => 'cust_main', @@ -3117,6 +3209,7 @@ sub tables_hashref { 'refundnum', 'int', '', '', '', '', 'amount', @money_type, '', '', '_date', @date_type, '', '', + 'creditrefundnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'creditrefundnum', 'unique' => [], @@ -3139,6 +3232,7 @@ sub tables_hashref { 'svcpart', 'int', '', '', '', '', 'agent_svcid', 'int', 'NULL', '', '', '', 'overlimit', @date_type, '', '', + 'svcnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'svcnum', 'unique' => [], @@ -3216,7 +3310,7 @@ sub tables_hashref { 'columns' => [ 'pkgpart', 'serial', '', '', '', '', 'pkgpartbatch', 'varchar', 'NULL', $char_d, '', '', - 'pkg', 'varchar', '', $char_d, '', '', + 'pkg', 'varchar', '', 104, '', '', 'comment', 'varchar', 'NULL', 2*$char_d, '', '', 'promo_code', 'varchar', 'NULL', $char_d, '', '', 'freq', 'varchar', '', $char_d, '', '', #billing frequency @@ -3595,6 +3689,7 @@ sub tables_hashref { 'hidden', 'char', 'NULL', 1, '', '', 'bulk_skip', 'char', 'NULL', 1, '', '', 'provision_hold', 'char', 'NULL', 1, '', '', + 'pkgsvcnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'pkgsvcnum', 'unique' => [ ['pkgpart', 'svcpart'] ], @@ -3616,6 +3711,7 @@ sub tables_hashref { 'disabled', 'char', 'NULL', 1, '', '', 'agentnum', 'int', 'NULL', '', '', '', 'title', 'varchar', 'NULL', $char_d, '', '', + 'refnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'refnum', 'unique' => [ ['agentnum', 'title'] ], @@ -3638,6 +3734,7 @@ sub tables_hashref { 'classnum', 'int', 'NULL', '', '', '', 'restrict_edit_password','char', 'NULL', 1, '', '', 'has_router', 'char', 'NULL', 1, '', '', + 'svcpart_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'svcpart', 'unique' => [], @@ -3658,6 +3755,7 @@ sub tables_hashref { 'columnvalue', 'varchar', 'NULL', 512, '', '', 'columnflag', 'char', 'NULL', 1, '', '', 'required', 'char', 'NULL', 1, '', '', + 'columnnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'columnnum', 'unique' => [ [ 'svcpart', 'columnname' ] ], @@ -3673,7 +3771,8 @@ sub tables_hashref { 'columns' => [ 'classnum', 'serial', '', '', '', '', 'classname', 'varchar', '', $char_d, '', '', - 'disabled', 'char', 'NULL', 1, '', '', + 'disabled', 'char', 'NULL', 1, '', '', + 'classnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'classnum', 'unique' => [], @@ -3809,6 +3908,7 @@ sub tables_hashref { 'svc_acct' => { 'columns' => [ 'svcnum', 'int', '', '', '', '', + 'svcnum_import', 'int', 'NULL', '', '', '', 'username', 'varchar', '', $username_len, '', '', '_password', 'varchar', 'NULL', 512, '', '', '_password_encoding', 'varchar', 'NULL', $char_d, '', '', @@ -3941,6 +4041,7 @@ sub tables_hashref { 'svc_domain' => { 'columns' => [ 'svcnum', 'int', '', '', '', '', + 'svcnum_import', 'int', 'NULL', '', '', '', 'domain', 'varchar', '', $char_d, '', '', 'suffix', 'varchar', 'NULL', $char_d, '', '', 'catchall', 'int', 'NULL', '', '', '', @@ -4114,7 +4215,7 @@ sub tables_hashref { 'note', 'text', 'NULL', '', '', '', ], 'primary_key' => 'svcnum', - 'unique' => [], + 'unique' => [ ['typenum', 'serial'], ['ip_addr'], ['hw_addr'] ], 'index' => [], 'foreign_keys' => [ { columns => [ 'svcnum' ], @@ -4482,10 +4583,11 @@ sub tables_hashref { 'export_svc' => { 'columns' => [ - 'exportsvcnum' => 'serial', '', '', '', '', - 'exportnum' => 'int', '', '', '', '', - 'svcpart' => 'int', '', '', '', '', - 'role' => 'varchar', 'NULL', 16, '', '', + 'exportsvcnum', 'serial', '', '', '', '', + 'exportnum', 'int', '', '', '', '', + 'svcpart', 'int', '', '', '', '', + 'role', 'varchar', 'NULL', 16, '', '', + 'exportsvcnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'exportsvcnum', 'unique' => [ [ 'exportnum', 'svcpart' ] ], @@ -4549,6 +4651,7 @@ sub tables_hashref { 'default_machine','int', 'NULL', '', '', '', 'no_suspend', 'char', 'NULL', 1, '', '', # could also have 'no_insert', 'no_replace', etc. + 'exportnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'exportnum', 'unique' => [], @@ -4567,6 +4670,7 @@ sub tables_hashref { 'exportnum', 'int', '', '', '', '', 'optionname', 'varchar', '', $char_d, '', '', 'optionvalue', 'text', 'NULL', '', '', '', + 'optionnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'optionnum', 'unique' => [], @@ -4584,6 +4688,7 @@ sub tables_hashref { 'svcnum', 'int', '', '', '', '', 'groupname', 'varchar', 'NULL', $char_d, '', '', #deprecated 'groupnum', 'int', 'NULL', '', '', '', + 'usergroupnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'usergroupnum', 'unique' => [], @@ -4606,6 +4711,7 @@ sub tables_hashref { 'priority', 'int', '', '', '1', '', 'speed_up', 'int', 'NULL', '', '', '', 'speed_down', 'int', 'NULL', '', '', '', + 'groupnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'groupnum', 'unique' => [ ['groupname'] ], @@ -4815,6 +4921,7 @@ sub tables_hashref { 'svc_broadband' => { 'columns' => [ 'svcnum', 'int', '', '', '', '', + 'svcnum_import', 'int', 'NULL', '', '', '', 'description', 'varchar', 'NULL', $char_d, '', '', 'routernum', 'int', 'NULL', '', '', '', 'blocknum', 'int', 'NULL', '', '', '', @@ -4837,6 +4944,9 @@ sub tables_hashref { 'suid', 'int', 'NULL', '', '', '', 'shared_svcnum', 'int', 'NULL', '', '', '', 'serviceid', 'varchar', 'NULL', 64, '', '',#srvexport/reportfields + 'speed_test_up', 'int', 'NULL', '', '', '', + 'speed_test_down', 'int', 'NULL', '', '', '', + 'speed_test_latency', 'int', 'NULL', '', '', '', ], 'primary_key' => 'svcnum', 'unique' => [ [ 'ip_addr' ], [ 'mac_addr' ] ], @@ -4874,6 +4984,8 @@ sub tables_hashref { 'height', 'decimal', 'NULL', '', '', '', 'veg_height', 'decimal', 'NULL', '', '', '', 'color', 'varchar', 'NULL', 6, '', '', + 'up_rate_limit', 'int', 'NULL', '', '', '', + 'down_rate_limit', 'int', 'NULL', '', '', '', ], 'primary_key' => 'towernum', 'unique' => [ [ 'towername' ] ], # , 'agentnum' ] ], @@ -4904,8 +5016,9 @@ sub tables_hashref { 'east', 'decimal', 'NULL', '10,7', '', '', 'south', 'decimal', 'NULL', '10,7', '', '', 'north', 'decimal', 'NULL', '10,7', '', '', - 'title', 'varchar', 'NULL', $char_d,'', '', + 'up_rate_limit', 'int', 'NULL', '', '', '', + 'down_rate_limit', 'int', 'NULL', '', '', '', ], 'primary_key' => 'sectornum', 'unique' => [ [ 'towernum', 'sectorname' ], [ 'ip_addr' ], ], @@ -5016,6 +5129,7 @@ sub tables_hashref { 'refundnum', 'int', '', '', '', '', '_date', @date_type, '', '', 'amount', @money_type, '', '', + 'payrefundnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'payrefundnum', 'unique' => [], @@ -5036,6 +5150,7 @@ sub tables_hashref { 'pkgpart', 'int', '', '', '', '', 'optionname', 'varchar', '', $char_d, '', '', 'optionvalue', 'text', 'NULL', '', '', '', + 'optionnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'optionnum', 'unique' => [], @@ -5123,6 +5238,7 @@ sub tables_hashref { 'fccoptionname', 'varchar', '', $char_d, '', '', 'pkgpart', 'int', '', '', '', '', 'optionvalue', 'varchar', 'NULL', $char_d, '', '', + 'num_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'num', 'unique' => [ [ 'fccoptionname', 'pkgpart' ] ], @@ -5131,13 +5247,14 @@ sub tables_hashref { 'rate' => { 'columns' => [ - 'ratenum', 'serial', '', '', '', '', - 'ratename', 'varchar', '',$char_d, '', '', - 'agentnum', 'int', 'NULL', '', '', '', - 'default_detailnum', 'int', 'NULL', '', '', '', + 'ratenum', 'serial', '', '', '', '', + 'ratename', 'varchar', '', $char_d, '', '', + 'agentnum', 'int', 'NULL', '', '', '', + 'default_detailnum', 'int', 'NULL', '', '', '', + 'agent_rateid', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'ratenum', - 'unique' => [], + 'unique' => [ ['agentnum','agent_rateid'], ], 'index' => [], 'foreign_keys' => [ { columns => [ 'agentnum' ], @@ -5200,10 +5317,11 @@ sub tables_hashref { 'regionnum', 'serial', '', '', '', '', 'regionname', 'varchar', '', $char_d, '', '', 'exact_match', 'char', 'NULL', 1, '', '', + 'agent_regionid', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'regionnum', 'unique' => [], - 'index' => [], + 'index' => [ ['agent_regionid'] ], }, 'rate_prefix' => { @@ -5218,7 +5336,7 @@ sub tables_hashref { 'ocn', 'char', 'NULL', 4, '', '', ], 'primary_key' => 'prefixnum', - 'unique' => [], + 'unique' => [ [ 'countrycode', 'npa', 'nxx' ] ], 'index' => [ [ 'countrycode' ], [ 'npa' ], [ 'regionnum' ] ], 'foreign_keys' => [ { columns => [ 'regionnum' ], @@ -5451,6 +5569,7 @@ sub tables_hashref { 'ticketing_queueid', 'int', 'NULL', '', '', '', 'condense', 'char', 'NULL', 1, '', '', 'disabled', 'char', 'NULL', 1, '', '', + 'categorunum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'categorynum', 'unique' => [], @@ -5464,6 +5583,7 @@ sub tables_hashref { 'categorynum', 'int', 'NULL', '', '', '', 'disabled', 'char', 'NULL', 1, '', '', 'fcc_ds0s', 'int', 'NULL', '', '', '', + 'classnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'classnum', 'unique' => [], @@ -5598,6 +5718,9 @@ sub tables_hashref { #NULL, done (or something) 'freesidestatus', 'varchar', 'NULL', 32, '', '', + #additional status info (i.e. reason for "skipped" freesidestatus) + 'freesidestatustext', 'text', 'NULL', '', '', '', + #NULL, done (or something) 'freesiderewritestatus', 'varchar', 'NULL', 32, '', '', @@ -5608,9 +5731,6 @@ sub tables_hashref { 'sessionnum', 'int', 'NULL', '', '', '', 'subscriber', 'varchar', 'NULL', $char_d, '', '', - #old - 'cdrbatch', 'varchar', 'NULL', 255, '', '', - #new 'cdrbatchnum', 'int', 'NULL', '', '', '', # FK to cust_bill_pkg_detail; having a value here absolutely means @@ -5627,7 +5747,7 @@ sub tables_hashref { ['accountcode'], ['uniqueid'], ['carrierid'], ['cdrid'], [ 'sessionnum' ], [ 'subscriber' ], [ 'freesidestatus' ], [ 'freesiderewritestatus' ], - [ 'cdrbatch' ], [ 'cdrbatchnum' ], + [ 'cdrbatchnum' ], [ 'src_ip_addr' ], [ 'dst_ip_addr' ], [ 'dst_term' ], [ 'detailnum' ], ], @@ -5783,6 +5903,25 @@ sub tables_hashref { ], }, + 'access_user_session_log' => { + 'columns' => [ + 'sessionlognum', 'serial', '', '', '', '', + 'usernum', 'int', '', '', '', '', + 'start_date', @date_type, '', '', + 'last_date', @date_type, '', '', + 'logout_date', @date_type, '', '', + 'logout_type', 'varchar', '', $char_d, '', '', + ], + 'primary_key' => 'sessionlognum', + 'unique' => [], + 'index' => [], + 'foreign_keys' => [ + { columns => [ 'usernum' ], + table => 'access_user', + }, + ], + }, + 'access_user' => { 'columns' => [ 'usernum', 'serial', '', '', '', '', @@ -5830,8 +5969,9 @@ sub tables_hashref { 'access_group' => { 'columns' => [ - 'groupnum', 'serial', '', '', '', '', - 'groupname', 'varchar', '', $char_d, '', '', + 'groupnum', 'serial', '', '', '', '', + 'groupname', 'varchar', '', $char_d, '', '', + 'session_timeout', 'int', 'NULL', '', '', '', ], 'primary_key' => 'groupnum', 'unique' => [ [ 'groupname' ] ], @@ -5895,6 +6035,7 @@ sub tables_hashref { 'path', 'varchar', '', 2*$char_d, '', '', '_date', @date_type, '', '', 'render_seconds', 'int', 'NULL', '', '', '', + 'pid', 'int', 'NULL', '', '', '', ], 'primary_key' => 'lognum', 'unique' => [], @@ -5982,6 +6123,9 @@ sub tables_hashref { 'lnp_other_provider', 'varchar', 'NULL', $char_d, '', '', 'lnp_other_provider_account', 'varchar', 'NULL', $char_d, '', '', 'lnp_reject_reason', 'varchar', 'NULL', $char_d, '', '', + 'lnp_portid', 'varchar', 'NULL', $char_d, '', '', + 'lnp_signature', 'char', 'NULL', 1, '', '', + 'lnp_bill', 'char', 'NULL', 1, '', '', 'sms_carrierid', 'int', 'NULL', '', '', '', 'sms_account', 'varchar', 'NULL', $char_d, '', '', 'max_simultaneous', 'int', 'NULL', '', '', '', @@ -6208,6 +6352,7 @@ sub tables_hashref { 'typenum', 'serial', '', '', '', '', 'class', 'char', '', 1, '', '', 'type', 'varchar', '', $char_d, '', '', + 'typenum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'typenum', 'unique' => [], @@ -6226,6 +6371,7 @@ sub tables_hashref { 'feepart', 'int', 'NULL', '', '', '', 'fee_on_unsuspend','char', 'NULL', 1, '', '', 'fee_hold', 'char', 'NULL', 1, '', '', + 'reasonnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'reasonnum', 'unique' => [], @@ -6265,6 +6411,7 @@ sub tables_hashref { 'pkgrefnum', 'serial', '', '', '', '', 'pkgnum', 'int', '', '', '', '', 'refnum', 'int', '', '', '', '', + 'pkgrefnum_import', 'int', 'NULL', '', '', '', ], 'primary_key' => 'pkgrefnum', 'unique' => [ [ 'pkgnum', 'refnum' ] ], @@ -6821,7 +6968,7 @@ sub tables_hashref { 'mac_addr', 'varchar', 'NULL', 12, '', '', ], 'primary_key' => 'svcnum', - 'unique' => [ ['serialnum'] , ['mac_addr'] ], + 'unique' => [ ['modelnum', 'serialnum'] , ['mac_addr'] ], 'index' => [], 'foreign_keys' => [ { columns => [ 'svcnum' ], @@ -6979,6 +7126,7 @@ sub tables_hashref { 'vendor_order_status', 'varchar', 'NULL', $char_d, '', '', 'endpoint_ip_addr', 'varchar', 'NULL', 40, '', '', 'endpoint_mac_addr', 'varchar', 'NULL', 12, '', '', + 'internal_circuit_id', 'varchar', 'NULL', 64, '', '', ], 'primary_key' => 'svcnum', 'unique' => [], @@ -7561,6 +7709,73 @@ sub tables_hashref { 'foreign_keys' => [], }, + 'realestate_unit' => { + 'columns' => [ + 'realestatenum', 'serial', '', '', '', '', + 'realestatelocnum', 'int', '', '', '', '', + 'agentnum', 'int', 'NULL', '', '', '', + 'unit_title', 'varchar', '', $char_d, '', '', + 'disabled', 'char', 'NULL', 1, '', '', + ], + 'primary_key' => 'realestatenum', + 'unique' => [ ['unit_title'] ], + 'index' => [ + ['agentnum'], + ['realestatelocnum'], + ['disabled'], + ['unit_title'], + ], + 'foreign_keys' => [ + {columns => ['agentnum'], table => 'agent'}, + {columns => ['realestatelocnum'] => table => 'realestate_location'}, + ], + }, + + 'realestate_location' => { + 'columns' => [ + 'realestatelocnum', 'serial', '', '', '', '', + 'agentnum', 'int', 'NULL', '', '', '', + 'location_title', 'varchar', '', $char_d, '', '', + 'address1', 'varchar', 'NULL', $char_d, '', '', + 'address2', 'varchar', 'NULL', $char_d, '', '', + 'city', 'varchar', 'NULL', $char_d, '', '', + 'state', 'varchar', 'NULL', $char_d, '', '', + 'zip', 'char', 'NULL', 5, '', '', + 'disabled', 'char', 'NULL', 1, '', '', + ], + 'primary_key' => 'realestatelocnum', + 'unique' => [ ['location_title'] ], + 'index' => [ ['agentnum'], ['disabled'] ], + 'foreign_keys' => [ + {columns => ['agentnum'], table => 'agent'}, + ], + }, + + 'svc_realestate' => { + 'columns' => [ + 'svcnum', 'serial', '', '', '', '', + 'realestatenum', 'int', 'NULL', '', '', '', + ], + 'primary_key' => 'svcnum', + 'index' => [], + }, + + 'svc_group' => { + 'columns' => [ + 'svcnum', 'int', '', '', '', '', + 'max_accounts', 'int', '', '', '', '', + ], + 'primary_key' => 'svcnum', + 'unique' => [], + 'index' => [], + 'foreign_keys' => [ + { columns => [ 'svcnum' ], + table => 'cust_svc', + }, + ], + }, + + # name type nullability length default local #'new_table' => { @@ -7587,4 +7802,3 @@ L =cut 1; -