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 );
=cut
sub dbdef_dist {
- my $datasrc = @_ ? shift : '';
+ my $datasrc = @_ && !ref($_[0]) ? shift : '';
+ my $opt = @_ ? shift : {};
my $local_options = '';
if ( $datasrc =~ /^dbi:mysql/i ) {
grep { ! /^(clientapi|access_user)_session/
&& ! /^h_/
&& ! /^log(_context)?$/
+ && ( ! /^queue(_arg)?$/ || ! $opt->{'queue-no_history'} )
&& ! $tables_hashref_torrus->{$_}
}
$dbdef->tables
'index' => [ ['typenum'] ],
},
+ 'agent_currency' => {
+ 'columns' => [
+ 'agentcurrencynum', 'serial', '', '', '', '',
+ 'agentnum', 'int', '', '', '', '',
+ 'currency', 'char', '', 3, '', '',
+ ],
+ 'primary_key' => 'agentcurrencynum',
+ 'unique' => [],
+ 'index' => [ ['agentnum'] ],
+ },
+
'sales' => {
'columns' => [
'salesnum', 'serial', '', '', '', '',
'salesperson', 'varchar', '', $char_d, '', '',
'agentnum', 'int', 'NULL', '', '', '',
+ 'sales_custnum', 'int', 'NULL', '', '', '',
'disabled', 'char', 'NULL', 1, '', '',
],
'primary_key' => 'salesnum',
'index' => [ ['salesnum'], ['disabled'] ],
},
- 'agent_currency' => {
+ 'sales_pkg_class' => {
'columns' => [
- 'agentcurrencynum', 'serial', '', '', '', '',
- 'agentnum', 'int', '', '', '', '',
- 'currency', 'char', '', 3, '', '',
+ 'salespkgclassnum', 'serial', '', '', '', '',
+ 'salesnum', 'int', '', '', '', '',
+ 'classnum', 'int', 'NULL', '', '', '',
+ 'commission_percent', 'decimal', '', '7,4', '', '',
+ 'commission_duration', 'int', 'NULL', '', '', '',
],
- 'primary_key' => 'agentcurrencynum',
- 'unique' => [],
- 'index' => [ ['agentnum'] ],
+ 'primary_key' => 'salespkgclassnum',
+ 'unique' => [ [ 'salesnum', 'classnum' ], ],
+ 'index' => [],
},
'cust_attachment' => {
'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', '', '', '', #
],
'primary_key' => 'crednum',
'unique' => [],
- 'index' => [ ['custnum'], ['_date'], ['usernum'], ['eventnum'] ],
+ 'index' => [ ['custnum'], ['_date'], ['usernum'], ['eventnum'],
+ [ 'commission_salesnum' ],
+ ],
},
'cust_credit_bill' => {
'columns' => [
'custnum', 'serial', '', '', '', '',
'agentnum', 'int', '', '', '', '',
+ 'salesnum', 'int', 'NULL', '', '', '',
'agent_custid', 'varchar', 'NULL', $char_d, '', '',
'classnum', 'int', 'NULL', '', '', '',
'custbatch', 'varchar', 'NULL', $char_d, '', '',
'currency', 'char', 'NULL', 3, '', '',
#deprecated, info moved to cust_payby
- 'payby', 'char', '', 4, '', '',
+ 'payby', 'char', 'NULL', 4, '', '',
'payinfo', 'varchar', 'NULL', 512, '', '',
'paycvv', 'varchar', 'NULL', 512, '', '',
'paymask', 'varchar', 'NULL', $char_d, '', '',
'invnum', 'int', 'NULL', '', '', '',
'manual', 'char', 'NULL', 1, '', '',
'discount_term','int', 'NULL', '', '', '',
+ 'failure_status','varchar','NULL', 16, '', '',
],
'primary_key' => 'paypendingnum',
'unique' => [ [ 'payunique' ] ],
'amount', @money_type, '', '',
'currency', 'char', 'NULL', 3, '', '',
'status', 'varchar', 'NULL', $char_d, '', '',
+ 'failure_status','varchar', 'NULL', 16, '', '',
'error_message', 'varchar', 'NULL', $char_d, '', '',
],
'primary_key' => 'paybatchnum',
'locationnum', 'int', 'NULL', '', '', '',
'otaker', 'varchar', 'NULL', 32, '', '',
'usernum', 'int', 'NULL', '', '', '',
+ 'salesnum', 'int', 'NULL', '', '', '',
'order_date', @date_type, '', '',
'start_date', @date_type, '', '',
'setup', @date_type, '', '',
'selfservice_access', 'varchar', 'NULL', $char_d, '', '',
'classnum', 'int', 'NULL', '', '', '',
'restrict_edit_password','char', 'NULL', 1, '', '',
+ 'has_router', 'char', 'NULL', 1, '', '',
],
'primary_key' => 'svcpart',
'unique' => [],
'index' => [ [ 'groupnum' ] ],
},
- 'access_groupsales' => {
- 'columns' => [
- 'groupsalesnum', 'serial', '', '', '', '',
- 'groupnum', 'int', '', '', '', '',
- 'salesnum', 'int', '', '', '', '',
- ],
- 'primary_key' => 'groupsalesnum',
- 'unique' => [ [ 'groupnum', 'salesnum' ] ],
- 'index' => [ [ 'groupnum' ] ],
- },
-
'access_right' => {
'columns' => [
'rightnum', 'serial', '', '', '', '',
'index' => [],
},
+ 'svc_alarm' => {
+ 'columns' => [
+ 'svcnum', 'int', '', '', '', '',
+ 'alarm_system', 'varchar', '', $char_d, '', '', # dropdowns?
+ 'alarm_type', 'varchar', '', $char_d, '', '', #
+ 'acctnum', 'varchar', '', $char_d, '', '',
+ '_password', 'varchar', '', $char_d, '', '',
+ 'location', 'varchar', 'NULL', $char_d, '', '',
+ #cs
+ #rep
+ ],
+ 'primary_key' => 'svcnum',
+ 'unique' => [], #system/type/acctnum??
+ 'index' => [],
+ },
+
'svc_cable' => {
'columns' => [
- 'svcnum', 'int', '', '', '', '',
- #nothing so far... there should be _something_ uniquely identifying
- # each subscriber besides the device info...?
+ 'svcnum', 'int', '', '', '', '',
+ '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' => [],
},
'vend_main' => {