fix unprovisioning of services when export_delete creates a queue job, #13971
[freeside.git] / FS / FS / Schema.pm
index 1b82e0e..ba39d80 100644 (file)
@@ -243,6 +243,23 @@ sub dbdef_dist {
                         ],
          });
 
+       #necessary for queries that want to look at *who* made changes
+      $h_indices{"h_${table}_usernum"} =
+         DBIx::DBSchema::Index->new({
+           'name'    => "h_${table}_usernum",
+           'unique'  => 0,
+           'columns' => [ 'history_usernum'],
+         });
+
+       # necessary because of the evil OR username for older data, be really nice if everything was just migrated to usernum and we could drop username
+       # This will not be helpful to mysql, but postgres smartly does a bitmap across both indexes, mysql will just use one
+
+      $h_indices{"h_${table}_user"} =
+         DBIx::DBSchema::Index->new({
+           'name'    => "h_${table}_user",
+           'unique'  => 0,
+           'columns' => [ 'history_user'],
+         });
     }
 
     my $primary_key_col = $tableobj->column($tableobj->primary_key)
@@ -1794,10 +1811,11 @@ sub tables_hashref {
         'add_date',   @date_type,                  '', '', 
         'disabled',       'char', 'NULL',       1, '', '', 
         'custnum',         'int', 'NULL',      '', '', '',
+        'refnum',          'int', 'NULL',      '', '', '', 
       ],
       'primary_key'  => 'prospectnum',
       'unique'       => [],
-      'index'        => [ [ 'company' ], [ 'agentnum' ], [ 'disabled' ] ],
+      'index'        => [ ['company'], ['agentnum'], ['disabled'], ['refnum'] ],
       'foreign_keys' => [
                           { columns    => [ 'agentnum' ],
                             table      => 'agent',
@@ -1805,6 +1823,9 @@ sub tables_hashref {
                           { columns    => [ 'custnum' ],
                             table      => 'cust_main',
                           },
+                          { columns    => [ 'refnum' ],
+                            table      => 'part_referral',
+                          },
                         ],
     },
 
@@ -2587,8 +2608,9 @@ sub tables_hashref {
       'index'        => [ ['custnum'], ['pkgpart'], ['pkgbatch'],
                           ['locationnum'], ['usernum'], ['agent_pkgid'],
                           ['order_date'], [ 'start_date' ], ['setup'], ['bill'],
-                          ['last_bill'], ['susp'], ['adjourn'], ['cancel'],
-                          ['expire'], ['contract_end'], ['change_date'],
+                          ['last_bill'], ['susp'], ['adjourn'], ['resume'],
+                          ['cancel'], ['expire'], ['contract_end'],
+                          ['change_date'],
                           ['no_auto'],
                           #['contactnum'],
                           ['salesnum'],
@@ -3030,6 +3052,7 @@ sub tables_hashref {
         'successor',     'int',     'NULL', '', '', '',
         'family_pkgpart','int',     'NULL', '', '', '',
         'delay_start',   'int',     'NULL', '', '', '',
+        'start_on_hold', 'char',    'NULL',  1, '', '',
         'agent_pkgpartid', 'varchar', 'NULL', 20, '', '',
       ],
       'primary_key'  => 'pkgpart',
@@ -4128,9 +4151,9 @@ sub tables_hashref {
                           [ 'job' ], [ 'svcnum' ], [ 'custnum' ], [ 'status' ],
                         ],
       'foreign_keys' => [
-                          { columns    => [ 'svcnum' ],
-                            table      => 'cust_svc',
-                          },
+#                          { columns    => [ 'svcnum' ],
+#                            table      => 'cust_svc',
+#                          },
                           { columns    => [ 'custnum' ],
                             table      => 'cust_main',
                           },
@@ -6247,7 +6270,7 @@ sub tables_hashref {
       'columns' => [
         'logcontextnum', 'serial', '', '', '', '',
         'lognum', 'int', '', '', '', '',
-        'context', 'varchar', '', 32, '', '',
+        'context', 'varchar', '', $char_d, '', '',
       ],
       'primary_key'  => 'logcontextnum',
       'unique'       => [ [ 'lognum', 'context' ] ],
@@ -6261,13 +6284,17 @@ sub tables_hashref {
 
     'svc_alarm' => {
       'columns' => [
-        'svcnum',          'int',      '',      '', '', '', 
-        'alarmsystemnum',  'int',      '',      '', '', '',
-        'alarmtypenum',    'int',      '',      '', '', '',
-        'alarmstationnum', 'int',      '',      '', '', '',
-        'acctnum',      'varchar',     '', $char_d, '', '',
-        '_password',    'varchar',     '', $char_d, '', '',
-        'location',     'varchar', 'NULL', $char_d, '', '',
+#       name               type        null   length   default local
+        'svcnum',          'int',      '',    '',      '',     '', 
+        'alarmsystemnum',  'int',      '',    '',      '',     '',
+        'alarmtypenum',    'int',      '',    '',      '',     '',
+        'alarmstationnum', 'int',      '',    '',      '',     '',
+        'acctnum',         'varchar',  '',    $char_d, '',     '',
+        '_password',       'varchar',  '',    $char_d, '',     '',
+        'location',        'varchar', 'NULL', $char_d, '',     '',
+        'cs_receiver',     'int',     'NULL', '',      '',     '',
+        'cs_phonenum',     'varchar', 'NULL', $char_d, '',     '',
+        'serialnum',       'varchar', 'NULL', $char_d, '',     '',
         #installer (rep)
       ],
       'primary_key'  => 'svcnum',
@@ -6351,7 +6378,7 @@ sub tables_hashref {
         'mac_addr',  'varchar', 'NULL',      12, '', '', 
       ],
       'primary_key'  => 'svcnum',
-      'unique'       => [],
+      'unique'       => [ ['serialnum'] , ['mac_addr'] ],
       'index'        => [],
       'foreign_keys' => [
                           { columns    => [ 'svcnum' ],