ticket 1443 add account type and bank state for echeck processing
[freeside.git] / FS / FS / Schema.pm
index 0bb97f4..591793b 100644 (file)
@@ -51,7 +51,7 @@ sub reload_dbdef {
   unless ( exists $dbdef_cache{$file} ) {
     warn "[debug]$me loading dbdef for $file\n" if $DEBUG;
     $dbdef_cache{$file} = DBIx::DBSchema->load( $file )
-                            or die "can't load database schema from $file";
+      or die "can't load database schema from $file: $DBIx::DBSchema::errstr\n";
   } else {
     warn "[debug]$me re-using cached dbdef for $file\n" if $DEBUG;
   }
@@ -319,6 +319,7 @@ sub tables_hashref {
         'weight',      'int', '', '', '', '', 
         'plan',       'varchar', 'NULL', $char_d, '', '', 
         'plandata',   'text', 'NULL', '', '', '', 
+        'reason',     'int', 'NULL', '', '', '', 
         'disabled',     'char', 'NULL', 1, '', '', 
       ],
       'primary_key' => 'eventpart',
@@ -389,6 +390,8 @@ sub tables_hashref {
         'billpkgnum',          'int', '',      '', '', '',
         'amount',            @money_type,          '', '',
         'setuprecur',      'varchar', '', $char_d, '', '',
+        'sdate',   @date_type, '', '', 
+        'edate',   @date_type, '', '', 
       ],
       'primary_key' => 'creditbillpkgnum',
       'unique'      => [],
@@ -405,6 +408,10 @@ sub tables_hashref {
 #        'middle',   'varchar', 'NULL', $char_d, '', '', 
         'first',    'varchar', '',     $char_d, '', '', 
         'ss',       'varchar', 'NULL', 11, '', '', 
+        'stateid', 'varchar', 'NULL', $char_d, '', '', 
+        'stateid_state', 'varchar', 'NULL', $char_d, '', '', 
+        'birthdate' ,@date_type, '', '', 
+        'signupdate',@date_type, '', '', 
         'company',  'varchar', 'NULL', $char_d, '', '', 
         'address1', 'varchar', '',     $char_d, '', '', 
         'address2', 'varchar', 'NULL', $char_d, '', '', 
@@ -440,6 +447,8 @@ sub tables_hashref {
         'paystart_year',  'int', 'NULL', '', '', '', 
         'payissue', 'varchar', 'NULL', 2, '', '', 
         'payname',  'varchar', 'NULL', $char_d, '', '', 
+        'paystate', 'varchar', 'NULL', $char_d, '', '', 
+        'paytype',  'varchar', 'NULL', $char_d, '', '', 
         'payip',    'varchar', 'NULL', 15, '', '', 
         'tax',      'char', 'NULL', 1, '', '', 
         'otaker',   'varchar', '',    32, '', '', 
@@ -447,6 +456,7 @@ sub tables_hashref {
         'referral_custnum', 'int',  'NULL', '', '', '', 
         'comments', 'text', 'NULL', '', '', '', 
         'spool_cdr','char', 'NULL', 1, '', '', 
+        'invoice_terms', 'varchar', 'NULL', $char_d, '', '',
       ],
       'primary_key' => 'custnum',
       'unique' => [ [ 'agentnum', 'agent_custid' ] ],
@@ -471,6 +481,19 @@ sub tables_hashref {
       'index' => [ ['custnum'], ],
     },
 
+    'cust_main_note' => {
+      'columns' => [
+        'notenum',  'serial',  '',     '', '', '', 
+        'custnum',  'int',  '',     '', '', '', 
+        '_date',    @date_type, '', '', 
+        'otaker',   'varchar', '',    32, '', '', 
+        'comments', 'text', 'NULL', '', '', '', 
+      ],
+      'primary_key' => 'notenum',
+      'unique' => [],
+      'index' => [ [ 'custnum' ], [ '_date' ], ],
+    },
+
     'cust_main_county' => { #county+state+country are checked off the
                             #cust_main_county for validation and to provide
                             # a tax rate.
@@ -502,7 +525,8 @@ sub tables_hashref {
         'payby',    'char',   '',     4, '', '', # CARD/BILL/COMP, should be
                                                  # index into payby table
                                                  # eventually
-        'payinfo',  'varchar',   'NULL', $char_d, '', '', #see cust_main above
+        'payinfo',  'varchar',   'NULL', 512, '', '', #see cust_main above
+       'paymask', 'varchar', 'NULL', $char_d, '', '', 
         'paybatch', 'varchar',   'NULL', $char_d, '', '', #for auditing purposes.
         'closed',    'char', 'NULL', 1, '', '', 
       ],
@@ -520,7 +544,8 @@ sub tables_hashref {
         'payby',     'char',   '',     4, '', '', # CARD/BILL/COMP, should be
                                                   # index into payby table
                                                   # eventually
-        'payinfo',   'varchar',   'NULL', $char_d, '', '', #see cust_main above
+        'payinfo',   'varchar',   'NULL', 512, '', '', #see cust_main above
+       'paymask', 'varchar', 'NULL', $char_d, '', '', 
         'paybatch',  'varchar',   'NULL', $char_d, '', '', #for auditing purposes.
         'closed',    'char', 'NULL', 1, '', '', 
         'void_date', @date_type, '', '', 
@@ -545,6 +570,19 @@ sub tables_hashref {
       'index' => [ [ 'paynum' ], [ 'invnum' ] ],
     },
 
+    'cust_bill_pay_batch' => {
+      'columns' => [
+        'billpaynum', 'serial',     '',   '', '', '', 
+        'invnum',  'int',     '',   '', '', '', 
+        'paybatchnum',  'int',     '',   '', '', '', 
+        'amount',  @money_type, '', '', 
+        '_date',   @date_type, '', '', 
+      ],
+      'primary_key' => 'billpaynum',
+      'unique' => [],
+      'index' => [ [ 'paybatchnum' ], [ 'invnum' ] ],
+    },
+
     'cust_bill_pay_pkg' => {
       'columns' => [
         'billpaypkgnum', 'serial', '', '', '', '',
@@ -552,6 +590,8 @@ sub tables_hashref {
         'billpkgnum',       'int', '', '', '', '',
         'amount',         @money_type,     '', '',
         'setuprecur',      'varchar', '', $char_d, '', '',
+       'sdate',   @date_type, '', '', 
+        'edate',   @date_type, '', '', 
       ],
       'primary_key' => 'billpaypkgnum',
       'unique'      => [],
@@ -561,6 +601,7 @@ sub tables_hashref {
     'pay_batch' => { #batches of payments to an external processor
       'columns' => [
         'batchnum',   'serial',    '',   '', '', '', 
+       'payby',      'char',      '',    4, '', '', # CARD/CHEK
         'status',     'char', 'NULL',     1, '', '', 
         'download',   @date_type, '', '', 
         'upload',     @date_type, '', '', 
@@ -618,6 +659,31 @@ sub tables_hashref {
       'index' => [ ['custnum'], ['pkgpart'] ],
     },
 
+    'cust_pkg_option' => {
+      'columns' => [
+        'optionnum', 'serial', '', '', '', '', 
+        'pkgnum', 'int', '', '', '', '', 
+        'optionname', 'varchar', '', $char_d, '', '', 
+        'optionvalue', 'text', 'NULL', '', '', '', 
+      ],
+      'primary_key' => 'optionnum',
+      'unique'      => [],
+      'index'       => [ [ 'pkgnum' ], [ 'optionname' ] ],
+    },
+
+    'cust_pkg_reason' => {
+      'columns' => [
+        'num',      'serial',    '',   '', '', '', 
+        'pkgnum',   'int',    '',   '', '', '', 
+        'reasonnum','int',    '',   '', '', '', 
+        'otaker',   'varchar', '', 32, '', '', 
+        'date',     @date_type, '', '', 
+      ],
+      'primary_key' => 'num',
+      'unique' => [],
+      'index' => [],
+    },
+
     'cust_refund' => {
       'columns' => [
         'refundnum',    'serial',    '',   '', '', '', 
@@ -630,7 +696,8 @@ sub tables_hashref {
         'payby',        'char',   '',     4, '', '', # CARD/BILL/COMP, should
                                                      # be index into payby
                                                      # table eventually
-        'payinfo',      'varchar',   'NULL', $char_d, '', '', #see cust_main above
+        'payinfo',      'varchar',   'NULL', 512, '', '', #see cust_main above
+       'paymask', 'varchar', 'NULL', $char_d, '', '', 
         'paybatch',     'varchar',   'NULL', $char_d, '', '', 
         'closed',    'char', 'NULL', 1, '', '', 
       ],
@@ -666,20 +733,22 @@ sub tables_hashref {
 
     'part_pkg' => {
       'columns' => [
-        'pkgpart',    'serial',    '',   '', '', '', 
-        'pkg',        'varchar',   '',   $char_d, '', '', 
-        'comment',    'varchar',   '',   $char_d, '', '', 
-        'promo_code', 'varchar', 'NULL', $char_d, '', '', 
-        'setup',      @perl_type, '', '', 
-        'freq',       'varchar',   '',   $char_d, '', '', #billing frequency
-        'recur',      @perl_type, '', '', 
-        'setuptax',  'char', 'NULL', 1, '', '', 
-        'recurtax',  'char', 'NULL', 1, '', '', 
-        'plan',       'varchar', 'NULL', $char_d, '', '', 
-        'plandata',   'text', 'NULL', '', '', '', 
-        'disabled',   'char', 'NULL', 1, '', '', 
-        'taxclass',   'varchar', 'NULL', $char_d, '', '', 
-        'classnum',   'int',     'NULL', '', '', '', 
+        'pkgpart',       'serial',    '',   '', '', '', 
+        'pkg',           'varchar',   '',   $char_d, '', '', 
+        'comment',       'varchar',   '',   $char_d, '', '', 
+        'promo_code',    'varchar', 'NULL', $char_d, '', '', 
+        'setup',         @perl_type, '', '', 
+        'freq',          'varchar',   '',   $char_d, '', '', #billing frequency
+        'recur',         @perl_type, '', '', 
+        'setuptax',      'char', 'NULL', 1, '', '', 
+        'recurtax',      'char', 'NULL', 1, '', '', 
+        'plan',          'varchar', 'NULL', $char_d, '', '', 
+        'plandata',      'text', 'NULL', '', '', '', 
+        'disabled',      'char', 'NULL', 1, '', '', 
+        'taxclass',      'varchar', 'NULL', $char_d, '', '', 
+        'classnum',      'int',     'NULL', '', '', '', 
+        'pay_weight',    'real',    'NULL', '', '', '',
+        'credit_weight', 'real',    'NULL', '', '', '',
       ],
       'primary_key' => 'pkgpart',
       'unique' => [],
@@ -778,8 +847,9 @@ sub tables_hashref {
     'svc_acct' => {
       'columns' => [
         'svcnum',    'int',    '',   '', '', '', 
-        'username',  'varchar',   '',   $username_len, '', '', #unique (& remove dup code)
-        '_password', 'varchar',   '',   72, '', '', #13 for encryped pw's plus ' *SUSPENDED* (md5 passwords can be 34, blowfish 60)
+        'username',  'varchar',   '',   $username_len, '', '',
+        '_password', 'varchar',   '',  512, '', '',
+        '_password_encoding', 'varchar', 'NULL', $char_d, '', '',
         'sec_phrase', 'varchar',  'NULL',   $char_d, '', '', 
         'popnum',    'int',    'NULL',   '', '', '', 
         'uid',       'int', 'NULL',   '', '', '', 
@@ -790,6 +860,13 @@ sub tables_hashref {
         'quota',     'varchar',   'NULL',   $char_d, '', '', 
         'slipip',    'varchar',   'NULL',   15, '', '', #four TINYINTs, bah.
         'seconds',   'int', 'NULL',   '', '', '', #uhhhh
+        'seconds_threshold',   'int', 'NULL',   '', '', '',
+        'upbytes',   'bigint', 'NULL',   '', '', '', 
+        'upbytes_threshold',   'bigint', 'NULL',   '', '', '',
+        'downbytes', 'bigint', 'NULL',   '', '', '',
+        'downbytes_threshold',   'bigint', 'NULL',   '', '', '',
+        'totalbytes','bigint', 'NULL',   '', '', '',
+        'totalbytes_threshold',   'bigint', 'NULL',   '', '', '',
         'domsvc',    'int', '',   '', '', '', 
       ],
       'primary_key' => 'svcnum',
@@ -810,13 +887,20 @@ sub tables_hashref {
 
     'svc_domain' => {
       'columns' => [
-        'svcnum',    'int',    '',   '', '', '', 
-        'domain',    'varchar',    '',   $char_d, '', '', 
-        'catchall',  'int', 'NULL',    '', '', '', 
+        'svcnum',           'int',    '',        '', '', '',
+        'domain',       'varchar',    '',   $char_d, '', '',
+       'suffix',       'varchar', 'NULL',  $char_d, '', '',
+        'catchall',         'int', 'NULL',       '', '', '',
+       'parent_svcnum',    'int', 'NULL',       '', '', '',
+       'registrarnum',     'int', 'NULL',       '', '', '',
+       'registrarkey', 'varchar', 'NULL',       '', '', '',
+       'setup_date',  @date_type, '', '',
+       'renewal_interval', 'int', 'NULL',       '', '', '',
+       'expiration_date', @date_type, '', '',
       ],
       'primary_key' => 'svcnum',
-      'unique' => [ ['domain'] ],
-      'index' => [],
+      'unique' => [ ],
+      'index' => [ ['domain'] ],
     },
 
     'domain_record' => {
@@ -833,6 +917,16 @@ sub tables_hashref {
       'index'       => [ ['svcnum'] ],
     },
 
+    'registrar' => {
+      'columns' => [
+        'registrarnum',   'serial', '',      '', '', '',
+       'registrarname', 'varchar', '', $char_d, '', '',
+      ],
+      'primary_key' => 'registrarnum',
+      'unique'      => [],
+      'index'       => [],
+    },
+
     'svc_forward' => {
       'columns' => [
         'svcnum',   'int',            '',   '', '', '', 
@@ -851,6 +945,7 @@ sub tables_hashref {
         'svcnum',   'int',    '',  '', '', '', 
         'recnum',   'int',    '',  '', '', '', 
         'usersvc',  'int',    '',  '', '', '', 
+        'config',   'text',   'NULL',  '', '', '', 
       ],
       'primary_key' => 'svcnum',
       'unique'      => [],
@@ -876,6 +971,9 @@ sub tables_hashref {
         'identifier',  'varchar', '', $char_d, '', '', 
         'amount',      @money_type, '', '', 
         'seconds',     'int',     'NULL', '', '', '', 
+        'upbytes',     'bigint',     'NULL', '', '', '', 
+        'downbytes',   'bigint',     'NULL', '', '', '', 
+        'totalbytes',  'bigint',     'NULL', '', '', '', 
         'agentnum',    'int',     'NULL', '', '', '', 
       ],
       'primary_key' => 'prepaynum',
@@ -1084,10 +1182,17 @@ sub tables_hashref {
     'svc_broadband' => {
       'columns' => [
         'svcnum', 'int', '', '', '', '', 
+        'description', 'varchar', 'NULL', $char_d, '', '', 
         'blocknum', 'int', '', '', '', '', 
         'speed_up', 'int', '', '', '', '', 
         'speed_down', 'int', '', '', '', '', 
         'ip_addr', 'varchar', '', 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, '', '', 
       ],
       'primary_key' => 'svcnum',
       'unique'      => [],
@@ -1096,7 +1201,7 @@ sub tables_hashref {
 
     'part_virtual_field' => {
       'columns' => [
-        'vfieldpart', 'int', '', '', '', '', 
+        'vfieldpart', 'serial', '', '', '', '', 
         'dbtable', 'varchar', '', 32, '', '', 
         'name', 'varchar', '', 32, '', '', 
         'check_block', 'text', 'NULL', '', '', '', 
@@ -1320,25 +1425,15 @@ sub tables_hashref {
       'index'       => [],
     },
 
-    'cancel_reason' => {
-      'columns' => [
-        'reasonnum', 'serial',  '',     '', '', '', 
-        'reason',    'varchar', '',     $char_d, '', '', 
-        'disabled',  'char',    'NULL', 1, '', '', 
-      ],
-      'primary_key' => 'reasonnum',
-      'unique' => [],
-      'index'  => [ [ 'disabled' ] ],
-    },
-
     'pkg_class' => {
       'columns' => [
         'classnum',   'serial',  '', '', '', '', 
         'classname',  'varchar', '', $char_d, '', '', 
+        'disabled',     'char', 'NULL',   1, '', '', 
       ],
       'primary_key' => 'classnum',
       'unique' => [],
-      'index' => [],
+      'index' => [ ['disabled'] ],
     },
 
     'cdr' => {
@@ -1575,7 +1670,42 @@ sub tables_hashref {
       'index'  => [ [ 'countrycode', 'phonenum' ] ],
     },
 
-  };
+    'reason_type' => {
+      'columns' => [
+        'typenum',   'serial',  '', '', '', '', 
+        'class',     'char', '', 1, '', '', 
+        'type',     'varchar', '', $char_d, '', '', 
+      ],
+      'primary_key' => 'typenum',
+      'unique' => [],
+      'index' => [],
+    },
+
+    'reason' => {
+      'columns' => [
+        'reasonnum',     'serial',  '', '', '', '', 
+        'reason_type',   'int',  '', '', '', '', 
+        'reason',        'varchar', '', $char_d, '', '', 
+        'disabled',      'char',    'NULL', 1, '', '', 
+      ],
+      'primary_key' => 'reasonnum',
+      'unique' => [],
+      'index' => [],
+    },
+
+    'conf' => {
+      'columns' => [
+        'confnum',  'serial',  '', '', '', '', 
+        'agentnum', 'int',  'NULL', '', '', '', 
+        'name',     'varchar', '', $char_d, '', '', 
+        'value',    'varchar', 'NULL', '', '', '',       # Pg specific
+      ],
+      'primary_key' => 'confnum',
+      'unique' => [ [ 'agentnum', 'name' ]],
+      'index' => [],
+    },
+
+    # name type nullability length default local
 
     #'new_table' => {
     #  'columns' => [
@@ -1586,6 +1716,8 @@ sub tables_hashref {
     #  'index'  => [],
     #},
 
+  };
+
 }
 
 =back