X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2FSchema.pm;h=67b682360910b894fca0cc4009ba00ba65b2f8cd;hp=51daf44bd8ae4ed0819b84fa12359153db716e95;hb=172673b3aef143dc426603689d37b65394c4fe1d;hpb=2b506b8beb731f6319ddecaa34542978ee94dbb1 diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 51daf44bd..67b682360 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -3,9 +3,9 @@ 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.33; +use DBIx::DBSchema 0.40; #0.40 for mysql upgrade fixes use DBIx::DBSchema::Table; -use DBIx::DBSchema::Column 0.06; +use DBIx::DBSchema::Column; use DBIx::DBSchema::Index; @ISA = qw(Exporter); @@ -70,7 +70,7 @@ sub dbdef { $dbdef; } Returns the current canoical database definition as defined in this file. Optionally, pass a DBI data source to enable syntax specific to that database. -Currently, this enables "TYPE=InnoDB" for MySQL databases. +Currently, this enables "ENGINE=InnoDB" for MySQL databases. =cut @@ -79,7 +79,7 @@ sub dbdef_dist { my $local_options = ''; if ( $datasrc =~ /^dbi:mysql/i ) { - $local_options = 'TYPE=InnoDB'; + $local_options = 'ENGINE=InnoDB'; } ### @@ -532,6 +532,7 @@ sub tables_hashref { 'closed', 'char', 'NULL', 1, '', '', #not yet used much 'statementnum', 'int', 'NULL', '', '', '', #invoice aggregate statements 'agent_invid', 'int', 'NULL', '', '', '', #(varchar?) importing legacy + 'promised_date', @date_type, '', '', ], 'primary_key' => 'invnum', 'unique' => [ [ 'custnum', 'agent_invid' ] ], #agentnum? huh @@ -854,6 +855,9 @@ sub tables_hashref { 'state', 'varchar', 'NULL', $char_d, '', '', 'zip', 'varchar', 'NULL', 10, '', '', 'country', 'char', '', 2, '', '', + 'latitude', 'decimal', 'NULL', '10,7', '', '', + 'longitude','decimal', 'NULL', '10,7', '', '', + 'coord_auto', 'char', 'NULL', 1, '', '', 'daytime', 'varchar', 'NULL', 20, '', '', 'night', 'varchar', 'NULL', 20, '', '', 'fax', 'varchar', 'NULL', 12, '', '', @@ -869,6 +873,9 @@ sub tables_hashref { 'ship_state', 'varchar', 'NULL', $char_d, '', '', 'ship_zip', 'varchar', 'NULL', 10, '', '', 'ship_country', 'char', 'NULL', 2, '', '', + 'ship_latitude', 'decimal', 'NULL', '10,7', '', '', + 'ship_longitude','decimal', 'NULL', '10,7', '', '', + 'ship_coord_auto', 'char', 'NULL', 1, '', '', 'ship_daytime', 'varchar', 'NULL', 20, '', '', 'ship_night', 'varchar', 'NULL', 20, '', '', 'ship_fax', 'varchar', 'NULL', 12, '', '', @@ -888,6 +895,8 @@ sub tables_hashref { 'payip', 'varchar', 'NULL', 15, '', '', 'geocode', 'varchar', 'NULL', 20, '', '', 'censustract', 'varchar', 'NULL', 20, '', '', # 7 to save space? + 'censusyear', 'char', 'NULL', 4, '', '', + 'district', 'varchar', 'NULL', 20, '', '', 'tax', 'char', 'NULL', 1, '', '', 'otaker', 'varchar', 'NULL', 32, '', '', 'usernum', 'int', 'NULL', '', '', '', @@ -896,7 +905,7 @@ sub tables_hashref { 'comments', 'text', 'NULL', '', '', '', 'spool_cdr','char', 'NULL', 1, '', '', 'squelch_cdr','char', 'NULL', 1, '', '', - 'cdr_termination_percentage', 'decimal', 'NULL', '', '', '', + 'cdr_termination_percentage', 'decimal', 'NULL', '7,4', '', '', 'invoice_terms', 'varchar', 'NULL', $char_d, '', '', 'credit_limit', @money_typen, '', '', 'archived', 'char', 'NULL', 1, '', '', @@ -929,7 +938,7 @@ sub tables_hashref { ], }, - 'cust_recon' => { # what purpose does this serve? + 'cust_recon' => { # (some sort of not-well understood thing for OnPac) 'columns' => [ 'reconid', 'serial', '', '', '', '', 'recondate', @date_type, '', '', @@ -955,7 +964,17 @@ sub tables_hashref { 'index' => [], }, - #eventually for cust_main too + 'contact_class' => { + 'columns' => [ + 'classnum', 'serial', '', '', '', '', + 'classname', 'varchar', '', $char_d, '', '', + 'disabled', 'char', 'NULL', 1, '', '', + ], + 'primary_key' => 'classnum', + 'unique' => [], + 'index' => [ ['disabled'] ], + }, + 'contact' => { 'columns' => [ 'contactnum', 'serial', '', '', '', '', @@ -1041,8 +1060,12 @@ sub tables_hashref { 'county', 'varchar', 'NULL', $char_d, '', '', 'state', 'varchar', 'NULL', $char_d, '', '', 'zip', 'varchar', 'NULL', 10, '', '', + 'latitude', 'decimal', 'NULL', '10,7', '', '', + 'longitude', 'decimal', 'NULL', '10,7', '', '', + 'coord_auto', 'char', 'NULL', 1, '', '', 'country', 'char', '', 2, '', '', 'geocode', 'varchar', 'NULL', 20, '', '', + 'district', 'varchar', 'NULL', 20, '', '', 'location_type', 'varchar', 'NULL', 20, '', '', 'location_number', 'varchar', 'NULL', 20, '', '', 'location_kind', 'char', 'NULL', 1, '', '', @@ -1167,11 +1190,12 @@ sub tables_hashref { 'index' => [ [ 'custnum' ], [ 'billpkgnum' ] ], }, - 'cust_main_county' => { #county+state+country are checked off the - #cust_main_county for validation and to provide - # a tax rate. + 'cust_main_county' => { #district+city+county+state+country are checked + #off the cust_main_county for validation and to + #provide a tax rate. 'columns' => [ 'taxnum', 'serial', '', '', '', '', + 'district', 'varchar', 'NULL', 20, '', '', 'city', 'varchar', 'NULL', $char_d, '', '', 'county', 'varchar', 'NULL', $char_d, '', '', 'state', 'varchar', 'NULL', $char_d, '', '', @@ -1186,7 +1210,8 @@ sub tables_hashref { 'primary_key' => 'taxnum', 'unique' => [], # 'unique' => [ ['taxnum'], ['state', 'county'] ], - 'index' => [ [ 'city' ], [ 'county' ], [ 'state' ], [ 'country' ], + 'index' => [ [ 'district' ], [ 'city' ], [ 'county' ], [ 'state' ], + [ 'country' ], [ 'taxclass' ], ], }, @@ -1466,6 +1491,7 @@ sub tables_hashref { 'last_bill', @date_type, '', '', 'susp', @date_type, '', '', 'adjourn', @date_type, '', '', + 'resume', @date_type, '', '', 'cancel', @date_type, '', '', 'expire', @date_type, '', '', 'contract_end', @date_type, '', '', @@ -1534,14 +1560,14 @@ sub tables_hashref { 'cust_pkg_discount' => { 'columns' => [ - 'pkgdiscountnum', 'serial', '', '', '', '', - 'pkgnum', 'int', '', '', '', '', - 'discountnum', 'int', '', '', '', '', - 'months_used', 'decimal', 'NULL', '', '', '', - 'end_date', @date_type, '', '', - 'otaker', 'varchar', 'NULL', 32, '', '', - 'usernum', 'int', 'NULL', '', '', '', - 'disabled', 'char', 'NULL', 1, '', '', + 'pkgdiscountnum', 'serial', '', '', '', '', + 'pkgnum', 'int', '', '', '', '', + 'discountnum', 'int', '', '', '', '', + 'months_used', 'decimal', 'NULL', '7,4', '', '', + 'end_date', @date_type, '', '', + 'otaker', 'varchar', 'NULL', 32, '', '', + 'usernum', 'int', 'NULL', '', '', '', + 'disabled', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'pkgdiscountnum', 'unique' => [], @@ -1550,11 +1576,11 @@ sub tables_hashref { 'cust_bill_pkg_discount' => { 'columns' => [ - 'billpkgdiscountnum', 'serial', '', '', '', '', - 'billpkgnum', 'int', '', '', '', '', - 'pkgdiscountnum', 'int', '', '', '', '', - 'amount', @money_type, '', '', - 'months', 'decimal', 'NULL', '', '', '', + 'billpkgdiscountnum', 'serial', '', '', '', '', + 'billpkgnum', 'int', '', '', '', '', + 'pkgdiscountnum', 'int', '', '', '', '', + 'amount', @money_type, '', '', + 'months', 'decimal', 'NULL', '7,4', '', '', ], 'primary_key' => 'billpkgdiscountnum', 'unique' => [], @@ -1567,10 +1593,11 @@ sub tables_hashref { #'agentnum', 'int', 'NULL', '', '', '', 'name', 'varchar', 'NULL', $char_d, '', '', 'amount', @money_type, '', '', - 'percent', 'decimal', '', '', '', '', - 'months', 'decimal', 'NULL', '', '', '', + 'percent', 'decimal', '', '7,4', '', '', + 'months', 'decimal', 'NULL', '7,4', '', '', 'disabled', 'char', 'NULL', 1, '', '', - 'setup', 'char', 'NULL', 1, '', '', + 'setup', 'char', 'NULL', 1, '', '', + #'linked', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'discountnum', 'unique' => [], @@ -1791,11 +1818,12 @@ sub tables_hashref { 'part_svc' => { 'columns' => [ - 'svcpart', 'serial', '', '', '', '', - 'svc', 'varchar', '', $char_d, '', '', - 'svcdb', 'varchar', '', $char_d, '', '', - 'disabled', 'char', 'NULL', 1, '', '', - 'preserve', 'char', 'NULL', 1, '', '', + 'svcpart', 'serial', '', '', '', '', + 'svc', 'varchar', '', $char_d, '', '', + 'svcdb', 'varchar', '', $char_d, '', '', + 'disabled', 'char', 'NULL', 1, '', '', + 'preserve', 'char', 'NULL', 1, '', '', + 'selfservice_access', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'svcpart', 'unique' => [], @@ -1882,6 +1910,7 @@ sub tables_hashref { '_password_encoding', 'varchar', 'NULL', $char_d, '', '', 'sec_phrase', 'varchar', 'NULL', $char_d, '', '', 'popnum', 'int', 'NULL', '', '', '', + 'sectornum', 'int', 'NULL', '', '', '', 'uid', 'int', 'NULL', '', '', '', 'gid', 'int', 'NULL', '', '', '', 'finger', 'varchar', 'NULL', 2*$char_d, '', '', @@ -2108,12 +2137,13 @@ sub tables_hashref { 'hardware_type' => { 'columns' => [ - 'typenum', 'serial', '', '', '', '', - 'classnum', 'int', '', '', '', '', - 'model', 'varchar', '', $char_d, '', '', + 'typenum', 'serial', '', '', '', '', + 'classnum', 'int', '', '', '', '', + 'model', 'varchar', '', $char_d, '', '', + 'revision','varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'typenum', - 'unique' => [ ], + 'unique' => [ [ 'classnum', 'model', 'revision' ] ], 'index' => [ ], }, @@ -2268,6 +2298,7 @@ sub tables_hashref { 'server', 'varchar', 'NULL', 64, '', '', 'community', 'varchar', 'NULL', 50, '', '', 'description', 'varchar', '', 200, 'RADIUS Client', '', + 'svcnum', 'int', 'NULL', '', '', '', ], 'primary_key' => 'nasnum', 'unique' => [ [ 'nasname' ], ], @@ -2464,6 +2495,7 @@ sub tables_hashref { 'routername', 'varchar', '', $char_d, '', '', 'svcnum', 'int', 'NULL', '', '', '', 'agentnum', 'int', 'NULL', '', '', '', + 'manual_addr', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'routernum', 'unique' => [], @@ -2497,26 +2529,56 @@ sub tables_hashref { 'svc_broadband' => { 'columns' => [ - 'svcnum', 'int', '', '', '', '', - 'description', 'varchar', 'NULL', $char_d, '', '', - 'blocknum', 'int', 'NULL', '', '', '', - 'speed_up', 'int', 'NULL', '', '', '', - 'speed_down', 'int', 'NULL', '', '', '', - 'ip_addr', 'varchar', 'NULL', 15, '', '', - 'mac_addr', 'varchar', 'NULL', 12, '', '', - 'authkey', 'varchar', 'NULL', 32, '', '', - 'latitude', 'decimal', 'NULL', '', '', '', - 'longitude', 'decimal', 'NULL', '', '', '', - 'altitude', 'decimal', 'NULL', '', '', '', - 'vlan_profile', 'varchar', 'NULL', $char_d, '', '', + 'svcnum', 'int', '', '', '', '', + 'description', 'varchar', 'NULL', $char_d, '', '', + 'routernum', 'int', 'NULL', '', '', '', + 'blocknum', 'int', 'NULL', '', '', '', + 'sectornum', 'int', 'NULL', '', '', '', + 'speed_up', 'int', 'NULL', '', '', '', + 'speed_down', 'int', 'NULL', '', '', '', + 'ip_addr', 'varchar', 'NULL', 15, '', '', + 'mac_addr', 'varchar', 'NULL', 12, '', '', + 'authkey', 'varchar', 'NULL', 32, '', '', + 'latitude', 'decimal', 'NULL', '10,7', '', '', + 'longitude', 'decimal', 'NULL', '10,7', '', '', + 'altitude', 'decimal', 'NULL', '', '', '', + 'vlan_profile', 'varchar', 'NULL', $char_d, '', '', 'performance_profile', 'varchar', 'NULL', $char_d, '', '', - 'plan_id', 'varchar', 'NULL', $char_d, '', '', + 'plan_id', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'svcnum', 'unique' => [ [ 'mac_addr' ] ], 'index' => [], }, + '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, '', '', + ], + 'primary_key' => 'towernum', + 'unique' => [ [ 'towername' ] ], # , 'agentnum' ] ], + 'index' => [], + }, + + 'tower_sector' => { + 'columns' => [ + 'sectornum', 'serial', '', '', '', '', + 'towernum', 'int', '', '', '', '', + 'sectorname', 'varchar', '', $char_d, '', '', + 'ip_addr', 'varchar', 'NULL', 15, '', '', + ], + 'primary_key' => 'sectornum', + 'unique' => [ [ 'towernum', 'sectorname' ], [ 'ip_addr' ], ], + 'index' => [ [ 'towernum' ] ], + }, + 'part_virtual_field' => { 'columns' => [ 'vfieldpart', 'serial', '', '', '', '', @@ -2633,23 +2695,25 @@ sub tables_hashref { 'rate_detail' => { 'columns' => [ - 'ratedetailnum', 'serial', '', '', '', '', - 'ratenum', 'int', '', '', '', '', - 'orig_regionnum', 'int', 'NULL', '', '', '', - 'dest_regionnum', 'int', '', '', '', '', - 'min_included', 'int', '', '', '', '', - 'conn_charge', 'decimal', '', '10,4', '0', '', - 'conn_sec', 'int', '', '', '0', '', - 'min_charge', 'decimal', '', '10,5', '', '', #@money_type, '', '', - 'sec_granularity', 'int', '', '', '', '', - 'ratetimenum', 'int', 'NULL', '', '', '', - 'classnum', 'int', 'NULL', '', '', '', - 'cdrtypenum', 'int', 'NULL', '', '', '', - 'region_group', 'char', 'NULL', 1, '', '', + 'ratedetailnum', 'serial', '', '', '', '', + 'ratenum', 'int', '', '', '', '', + 'orig_regionnum', 'int', 'NULL', '', '', '', + 'dest_regionnum', 'int', '', '', '', '', + 'min_included', 'int', '', '', '', '', + 'conn_charge', 'decimal', '', '10,4', '0.0000', '', + 'conn_sec', 'int', '', '', '0', '', + 'min_charge', 'decimal', '', '10,5', '', '', + 'sec_granularity', 'int', '', '', '', '', + 'ratetimenum', 'int', 'NULL', '', '', '', + 'classnum', 'int', 'NULL', '', '', '', + 'cdrtypenum', 'int', 'NULL', '', '', '', + 'region_group', 'char', 'NULL', 1, '', '', ], 'primary_key' => 'ratedetailnum', 'unique' => [ [ 'ratenum', 'orig_regionnum', 'dest_regionnum' ] ], - 'index' => [ [ 'ratenum', 'dest_regionnum' ] ], + 'index' => [ [ 'ratenum', 'dest_regionnum' ], + [ 'ratenum', 'ratetimenum' ] + ], }, 'rate_region' => { @@ -2887,6 +2951,10 @@ sub tables_hashref { 'lastapp', 'varchar', '', $char_d, \"''", '', 'lastdata', 'varchar', '', $char_d, \"''", '', + #currently only opensips + 'src_ip_addr', 'varchar', 'NULL', 15, '', '', + 'dst_ip_addr', 'varchar', 'NULL', 15, '', '', + #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? @@ -2943,9 +3011,15 @@ sub tables_hashref { 'charged_party', 'varchar', 'NULL', $char_d, '', '', # how it was rated internally... - 'rated_price', 'decimal', 'NULL', '10,4', '', '', - 'rated_seconds', 'int', 'NULL', '', '', '', - 'rated_minutes', 'double precision', 'NULL', '', '', '', + 'rated_pretty_dst', 'varchar', 'NULL', $char_d, '', '', + 'rated_regionname', 'varchar', 'NULL', $char_d, '', '', + 'rated_price', 'decimal', 'NULL', '10,4', '', '', + 'rated_seconds', 'int', 'NULL', '', '', '', + 'rated_minutes', 'double precision', 'NULL', '', '', '', + 'rated_granularity', 'int', 'NULL', '', '', '', + 'rated_ratedetailnum', 'int', 'NULL', '', '', '', + 'rated_classnum', 'int', 'NULL', '', '', '', + 'rated_ratename', 'varchar', 'NULL', $char_d, '', '', 'carrierid', 'int', 'NULL', '', '', '', @@ -2980,6 +3054,7 @@ sub tables_hashref { [ 'sessionnum' ], [ 'subscriber' ], [ 'freesidestatus' ], [ 'freesiderewritestatus' ], [ 'cdrbatch' ], [ 'cdrbatchnum' ], + [ 'src_ip_addr' ], [ 'dst_ip_addr' ], ], },