fix missing banned_pay index
[freeside.git] / FS / FS / Schema.pm
index a90e269..1aa2b69 100644 (file)
@@ -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",
@@ -1304,8 +1313,8 @@ sub tables_hashref {
 
     'fcc477map' => {
       'columns' => [
-        'formkey', 'varchar', '', '', '', '', 
-        'formvalue', 'text', 'NULL', '', '', '', 
+        'formkey',   'varchar',     '', 255, '', '',
+        'formvalue',    'text', 'NULL',  '', '', '',
       ],
       'primary_key' => 'formkey',
       'unique'      => [],
@@ -1347,7 +1356,7 @@ sub tables_hashref {
                    [ 'usernum' ], [ 'agent_pkgid' ],
                    ['order_date'], [ 'start_date' ], ['setup'], ['bill'],
                    ['last_bill'], ['susp'], ['adjourn'], ['cancel'],
-                   ['expire'], ['contract_end'], ['change_date'],
+                   ['expire'], ['contract_end'], ['change_date'], ['no_auto'],
                  ],
     },
 
@@ -1429,6 +1438,7 @@ sub tables_hashref {
         'percent',    'decimal',     '',      '', '', '',
         'months',     'decimal', 'NULL',      '', '', '',
         'disabled',      'char', 'NULL',       1, '', '', 
+        'setup',      'char', 'NULL',       1, '', '', 
       ],
       'primary_key' => 'discountnum',
       'unique' => [],
@@ -1446,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, '', '', 
@@ -1520,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'],
                  ],
     },
 
@@ -1628,6 +1641,7 @@ sub tables_hashref {
         'pkgpart',    'int',    '',   '', '', '', 
         'svcpart',    'int',    '',   '', '', '', 
         'quantity',   'int',    '',   '', '', '', 
+        'setup_show_zero',  'char', 'NULL',  1, '', '',
         'primary_svc','char', 'NULL',  1, '', '', 
         'hidden',     'char', 'NULL',  1, '', '',
       ],
@@ -2469,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' => {
@@ -2498,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' => [],
@@ -2560,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...
@@ -2873,6 +2890,7 @@ sub tables_hashref {
                     [ 'exportnum', 'countrycode', 'npa', 'nxx', 'station' ], # #
                     [ 'svcnum' ],
                     [ 'availbatch' ],
+                    [ 'latanum' ],
                   ],
     },
     
@@ -2880,6 +2898,7 @@ sub tables_hashref {
       'columns' => [
         'latanum',    'int',      '',      '', '', '', 
         'description',   'varchar',    '',      $char_d, '', '', 
+        'have_usage',   'int',    'NULL',      '', '', '', 
       ],
       'primary_key' => 'latanum',
       'unique' => [],
@@ -2926,6 +2945,7 @@ sub tables_hashref {
         'ratecenternum',      'int',     'NULL',      '', '', '',
         'state',       'char',    'NULL',       2, '', '', 
         'quantity',      'int',     '',      '', '', '',
+        'custnum',   'int', 'NULL', '', '', '',
       ],
       'primary_key' => 'orderitemnum',
       'unique' => [],
@@ -3096,6 +3116,24 @@ sub tables_hashref {
       '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',     '',      '', '', '', 
@@ -3117,6 +3155,15 @@ sub tables_hashref {
       'index'  => [], #recnum
     },
 
+    'svc_port' => {
+      'columns' => [
+        'svcnum',                'int',     '',      '', '', '', 
+      ],
+      'primary_key' => 'svcnum',
+      'unique' => [],
+      'index'  => [], #recnum
+    },
+
     'areacode'  => {
       'columns' => [
       'areanum',   'serial',        '',      '', '', '',
@@ -3130,42 +3177,6 @@ sub tables_hashref {
       'index'  => [],
     },
 
-    'nms_device' => {
-      'columns' => [
-        'nms_devicenum', 'serial',     '',      '', '', '',
-        #'agentnum',         'int', 'NULL',      '', '', '',
-        'devicename',   'varchar',     '', $char_d, '', '',
-        'ip',           'varchar',     '',      15, '', '', 
-        'protocol',     'varchar',     '', $char_d, '', '',
-#        'last',     'int',     '',    '', '', '', 
-      ],
-      'primary_key' => 'nms_devicenum',
-      'unique' => [],
-      'index'  => [],
-    },
-   
-    'nms_deviceport' => {
-      'columns' => [
-        'portnum',       'serial',     '', '', '', '', 
-        'nms_devicenum',    'int',     '', '', '', '', 
-        'deviceport',       'int',     '', '', '', '', 
-        #'ip',       'varchar', 'NULL', 15, '', '', 
-        'svcnum',           'int', 'NULL', '', '', '',
-      ],
-      'primary_key' => 'portnum',
-      'unique'      => [ [ 'nms_devicenum', 'deviceport' ] ],
-      'index'       => [ [ 'svcnum' ] ],
-    },
-
-    'svc_port' => {
-      'columns' => [
-        'svcnum',                'int',     '',      '', '', '', 
-      ],
-      'primary_key' => 'svcnum',
-      'unique' => [],
-      'index'  => [], #recnum
-    },
-
 
     # name type nullability length default local