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);
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
my $local_options = '';
if ( $datasrc =~ /^dbi:mysql/i ) {
- $local_options = 'TYPE=InnoDB';
+ $local_options = 'ENGINE=InnoDB';
}
###
'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
'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, '', '',
'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, '', '',
'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', '', '', '',
'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, '', '',
'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, '', '',
'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, '', '',
'primary_key' => 'taxnum',
'unique' => [],
# 'unique' => [ ['taxnum'], ['state', 'county'] ],
- 'index' => [ [ 'city' ], [ 'county' ], [ 'state' ], [ 'country' ],
+ 'index' => [ [ 'district' ], [ 'city' ], [ 'county' ], [ 'state' ],
+ [ 'country' ],
[ 'taxclass' ],
],
},
'last_bill', @date_type, '', '',
'susp', @date_type, '', '',
'adjourn', @date_type, '', '',
+ 'resume', @date_type, '', '',
'cancel', @date_type, '', '',
'expire', @date_type, '', '',
'contract_end', @date_type, '', '',
'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' => [],
'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' => [],
#'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, '', '',
],
'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' => [],
'_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, '', '',
'server', 'varchar', 'NULL', 64, '', '',
'community', 'varchar', 'NULL', 50, '', '',
'description', 'varchar', '', 200, 'RADIUS Client', '',
+ 'svcnum', 'int', 'NULL', '', '', '',
],
'primary_key' => 'nasnum',
'unique' => [ [ 'nasname' ], ],
'groupnum', 'serial', '', '', '', '',
'groupname', 'varchar', '', $char_d, '', '',
'description', 'varchar', 'NULL', $char_d, '', '',
+ 'priority', 'int', '', '', '1', '',
],
'primary_key' => 'groupnum',
'unique' => [ ['groupname'] ],
'index' => [],
},
+ 'radius_attr' => {
+ 'columns' => [
+ 'attrnum', 'serial', '', '', '', '',
+ 'groupnum', 'int', '', '', '', '',
+ 'attrname', 'varchar', '', $char_d, '', '',
+ 'value', 'varchar', '', $char_d, '', '',
+ 'attrtype', 'char', '', 1, '', '',
+ 'op', 'char', '', 2, '', '',
+ ],
+ 'primary_key' => 'attrnum',
+ 'unique' => [ ['groupnum','attrname'] ], #?
+ 'index' => [],
+ },
+
'msgcat' => {
'columns' => [
'msgnum', 'serial', '', '', '', '',
'svc_broadband' => {
'columns' => [
- 'svcnum', 'int', '', '', '', '',
- 'description', 'varchar', 'NULL', $char_d, '', '',
- 'blocknum', 'int', 'NULL', '', '', '',
- 'speed_up', 'int', '', '', '', '',
- 'speed_down', 'int', '', '', '', '',
- '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, '', '',
+ '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', '', '', '', '',
'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' => {
'index' => [],
},
+ #not really part of the above rate_ stuff (used with flat rate rather than
+ # rated billing), but could be eventually, and its a rate
+ 'rate_tier' => {
+ 'columns' => [
+ 'tiernum', 'serial', '', '', '', '',
+ 'tiername', 'varchar', '', $char_d, '', '',
+ ],
+ 'primary_key' => 'tiernum',
+ 'unique' => [ [ 'tiername'], ],
+ 'index' => [],
+ },
+
+ 'rate_tier_detail' => {
+ 'columns' => [
+ 'tierdetailnum', 'serial', '', '', '', '',
+ 'tiernum', 'int', '', '', '', '',
+ 'min_quan', 'int', '', '', '', '',
+ 'min_charge', 'decimal', '', '10,4', '', '',
+ ],
+ 'primary_key' => 'tierdetailnum',
+ 'unique' => [],
+ 'index' => [ ['tiernum'], ],
+ },
+
'usage_class' => {
'columns' => [
'classnum', 'serial', '', '', '', '',
'max_callers', 'int', 'NULL', '', '', '',
###
- # fields for unitel/RSLCOM/convergent that don't map well to asterisk
- # defaults
- # though these are now used elsewhere:
+ # old fields for unitel/RSLCOM/convergent that don't map to asterisk
+ # ones we adoped moved to "own fields" section below
# charged_party, upstream_price, rated_price, carrierid, cdrtypenum
###
- #cdr_type: Usage = 1, S&E = 7, OC&C = 8
- 'cdrtypenum', 'int', 'NULL', '', '', '',
-
- 'charged_party', 'varchar', 'NULL', $char_d, '', '',
-
'upstream_currency', 'char', 'NULL', 3, '', '',
'upstream_price', 'decimal', 'NULL', '10,4', '', '',
'upstream_rateplanid', 'int', 'NULL', '', '', '', #?
# how it was rated internally...
'ratedetailnum', 'int', 'NULL', '', '', '',
- 'rated_price', 'decimal', 'NULL', '10,4', '', '',
'distance', 'decimal', 'NULL', '', '', '',
'islocal', 'int', 'NULL', '', '', '', # '', '', 0, '' instead?
'description', 'varchar', 'NULL', $char_d, '', '',
'quantity', 'int', 'NULL', '', '', '',
- #cdr_carrier: Telstra =1, Optus = 2, RSL COM = 3
- 'carrierid', 'int', 'NULL', '', '', '',
-
'upstream_rateid', 'int', 'NULL', '', '', '',
###
#and now for our own fields
###
- # a svcnum... right..?
+ 'cdrtypenum', 'int', 'NULL', '', '', '',
+
+ 'charged_party', 'varchar', 'NULL', $char_d, '', '',
+
+ # how it was rated internally...
+ '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', '', '', '',
+
+ # service it was matched to
'svcnum', 'int', 'NULL', '', '', '',
#NULL, done (or something)
'acctid', 'bigint', '', '', '', '',
'termpart', 'int', '', '', '', '',#future use see below
'rated_price', 'decimal', 'NULL', '10,4', '', '',
+ 'rated_seconds', 'int', 'NULL', '', '', '',
+ 'rated_minutes', 'double precision', 'NULL', '', '', '',
'status', 'varchar', 'NULL', 32, '', '',
'svcnum', 'int', 'NULL', '', '', '',
],