so Search.tsf and Search.rdf work
[freeside.git] / FS / bin / freeside-setup
index 49953b8..a2ef31e 100755 (executable)
@@ -9,7 +9,7 @@ use Getopt::Std;
 use Locale::Country;
 use Locale::SubCountry;
 use DBI;
-use DBIx::DBSchema 0.21;
+use DBIx::DBSchema 0.25;
 use DBIx::DBSchema::Table;
 use DBIx::DBSchema::Column;
 use DBIx::DBSchema::ColGroup::Unique;
@@ -142,7 +142,11 @@ foreach $attribute (@check_attributes) {
 }
 
 #create history tables (false laziness w/create-history-tables)
-foreach my $table ( grep { ! /^h_/ } $dbdef->tables ) {
+foreach my $table (
+  grep { ! /^clientapi_session/ }
+  grep { ! /^h_/ }
+  $dbdef->tables
+) {
   my $tableobj = $dbdef->table($table)
     or die "unknown table $table";
 
@@ -339,10 +343,11 @@ sub tables_hash_hack {
 
     'type_pkgs' => {
       'columns' => [
+        'typepkgnum', 'serial', '', '',
         'typenum',   'int',  '', '',
         'pkgpart',   'int',  '', '',
       ],
-      'primary_key' => '',
+      'primary_key' => 'typepkgnum',
       'unique' => [ ['typenum', 'pkgpart'] ],
       'index' => [ ['typenum'] ],
     },
@@ -395,6 +400,7 @@ sub tables_hash_hack {
 
     'cust_bill_pkg' => {
       'columns' => [
+        'billpkgnum', 'serial', '', '',
         'pkgnum',  'int', '', '',
         'invnum',  'int', '', '',
         'setup',   @money_type,
@@ -403,7 +409,7 @@ sub tables_hash_hack {
         'edate',   @date_type,
         'itemdesc', 'varchar', 'NULL', $char_d,
       ],
-      'primary_key' => '',
+      'primary_key' => 'billpkgnum',
       'unique' => [],
       'index' => [ ['invnum'] ],
     },
@@ -463,7 +469,7 @@ sub tables_hash_hack {
         'city',     'varchar', '',     $char_d,
         'county',   'varchar', 'NULL', $char_d,
         'state',    'varchar', 'NULL', $char_d,
-        'zip',      'varchar', '',     10,
+        'zip',      'varchar', 'NULL', 10,
         'country',  'char', '',     2,
         'daytime',  'varchar', 'NULL', 20,
         'night',    'varchar', 'NULL', 20,
@@ -483,8 +489,9 @@ sub tables_hash_hack {
         'ship_night',    'varchar', 'NULL', 20,
         'ship_fax',      'varchar', 'NULL', 12,
         'payby',    'char', '',     4,
-        'payinfo',  'varchar', 'NULL', $char_d,
-        'paycvv',   'varchar', 'NULL', 4,
+        'payinfo',  'varchar', 'NULL', 512,
+        'paycvv',   'varchar', 'NULL', 512,
+       'paymask', 'varchar', 'NULL', $char_d,
         #'paydate',  @date_type,
         'paydate',  'varchar', 'NULL', 10,
         'payname',  'varchar', 'NULL', $char_d,
@@ -597,7 +604,7 @@ sub tables_hash_hack {
         'address2', 'varchar', 'NULL', $char_d,
         'city',     'varchar', '',     $char_d,
         'state',    'varchar', 'NULL', $char_d,
-        'zip',      'varchar', '',     10,
+        'zip',      'varchar', 'NULL', 10,
         'country',  'char', '',     2,
 #        'trancode', 'int', '', '',
         'cardnum',  'varchar', '',     16,
@@ -692,8 +699,8 @@ sub tables_hash_hack {
         'taxclass',   'varchar', 'NULL', $char_d,
       ],
       'primary_key' => 'pkgpart',
-      'unique' => [ [ 'promo_code' ] ],
-      'index' => [ [ 'disabled' ] ],
+      'unique' => [],
+      'index' => [ [ 'promo_code' ], [ 'disabled' ] ],
     },
 
 #    'part_title' => {
@@ -708,12 +715,13 @@ sub tables_hash_hack {
 
     'pkg_svc' => {
       'columns' => [
+        'pkgsvcnum',  'serial', '',  '',
         'pkgpart',    'int',    '',   '',
         'svcpart',    'int',    '',   '',
         'quantity',   'int',    '',   '',
         'primary_svc','char', 'NULL',  1,
       ],
-      'primary_key' => '',
+      'primary_key' => 'pkgsvcnum',
       'unique' => [ ['pkgpart', 'svcpart'] ],
       'index' => [ ['pkgpart'] ],
     },
@@ -886,6 +894,7 @@ sub tables_hash_hack {
         'identifier',  'varchar', '', $char_d,
         'amount',      @money_type,
         'seconds',     'int',     'NULL', '',
+        'agentnum',    'int',     'NULL', '',
       ],
       'primary_key' => 'prepaynum',
       'unique'      => [ ['identifier'] ],
@@ -1052,10 +1061,11 @@ sub tables_hash_hack {
 
     'part_svc_router' => {
       'columns' => [
+        'svcrouternum', 'serial', '', '',
         'svcpart', 'int', '', '',
        'routernum', 'int', '', '',
       ],
-      'primary_key' => '',
+      'primary_key' => 'svcrouternum',
       'unique'      => [],
       'index'       => [],
     },
@@ -1102,11 +1112,12 @@ sub tables_hash_hack {
 
     'virtual_field' => {
       'columns' => [
+        'vfieldnum', 'serial', '', '',
         'recnum', 'int', '', '',
         'vfieldpart', 'int', '', '',
         'value', 'varchar', '', 128,
       ],
-      'primary_key' => '',
+      'primary_key' => 'vfieldnum',
       'unique' => [ [ 'vfieldpart', 'recnum' ] ],
       'index' => [],
     },
@@ -1173,6 +1184,7 @@ sub tables_hash_hack {
 
     'rate_detail' => {
       'columns' => [
+        'ratedetailnum',   'serial', '', '',
         'ratenum',         'int',     '', '',
         'orig_regionnum',  'int', 'NULL', '',
         'dest_regionnum',  'int',     '', '',
@@ -1181,7 +1193,7 @@ sub tables_hash_hack {
         'sec_granularity', 'int',     '', '',
         #time period (link to table of periods)?
       ],
-      'primary_key' => '',
+      'primary_key' => 'ratedetailnum',
       'unique'      => [ [ 'ratenum', 'orig_regionnum', 'dest_regionnum' ] ],
       'index'       => [],
     },
@@ -1190,8 +1202,9 @@ sub tables_hash_hack {
       'columns' => [
         'regionnum',   'serial',      '', '',
         'regionname',  'varchar',     '', $char_d,
+      ],
       'primary_key' => 'regionnum',
-      'unique'      => [].
+      'unique'      => [],
       'index'       => [],
     },
 
@@ -1200,13 +1213,58 @@ sub tables_hash_hack {
         'prefixnum',   'serial',    '', '',
         'regionnum',   'int',       '', '',,
         'countrycode', 'varchar',     '', 3,
-        'npa',         'varchar', 'NULL', 4, #not 3?
+        'npa',         'varchar', 'NULL', 6,
         'nxx',         'varchar', 'NULL', 3,
       ],
       'primary_key' => 'prefixnum',
-      'unique'      => [].
+      'unique'      => [],
       'index'       => [ [ 'countrycode' ], [ 'regionnum' ] ],
+    },
 
+    'reg_code' => {
+      'columns' => [
+        'codenum',   'serial',    '', '',
+        'code',      'varchar',   '', $char_d,
+        'agentnum',  'int',       '', '',
+      ],
+      'primary_key' => 'codenum',
+      'unique'      => [ [ 'agentnum', 'code' ] ],
+      'index'       => [ [ 'agentnum' ] ],
+    },
+
+    'reg_code_pkg' => {
+      'columns' => [
+        'codepkgnum', 'serial', '', '',
+        'codenum',   'int',    '', '',
+        'pkgpart',   'int',    '', '',
+      ],
+      'primary_key' => 'codepkgnum',
+      'unique'      => [ [ 'codenum', 'pkgpart' ] ],
+      'index'       => [ [ 'codenum' ] ],
+    },
+
+    'clientapi_session' => {
+      'columns' => [
+        'sessionnum',  'serial',  '', '',
+        'sessionid',  'varchar',  '', $char_d,
+        'namespace',  'varchar',  '', $char_d,
+      ],
+      'primary_key' => 'sessionnum',
+      'unique'      => [ [ 'sessionid', 'namespace' ] ],
+      'index'       => [],
+    },
+
+    'clientapi_session_field' => {
+      'columns' => [
+        'fieldnum',    'serial',     '', '',
+        'sessionnum',     'int',     '', '',
+        'fieldname',  'varchar',     '', $char_d,
+        'fieldvalue',    'text', 'NULL', '',
+      ],
+      'primary_key' => 'fieldnum',
+      'unique'      => [ [ 'sessionnum', 'fieldname' ] ],
+      'index'       => [],
+    },
 
   );