alarm systems, types, central stations, RT#25994
authorIvan Kohler <ivan@freeside.biz>
Mon, 9 Dec 2013 22:46:54 +0000 (14:46 -0800)
committerIvan Kohler <ivan@freeside.biz>
Mon, 9 Dec 2013 22:46:54 +0000 (14:46 -0800)
FS/FS/Schema.pm

index bc9d37a..6403782 100644 (file)
@@ -5912,21 +5912,82 @@ sub tables_hashref {
     'svc_alarm' => {
       'columns' => [
         'svcnum',          'int',      '',      '', '', '', 
-        'alarm_system', 'varchar',     '', $char_d, '', '', # dropdowns?
-        'alarm_type',   'varchar',     '', $char_d, '', '', #
+        'alarmsystemnum',  'int',      '',      '', '', '',
+        'alarmtypenum',    'int',      '',      '', '', '',
+        'alarmstationnum', 'int',      '',      '', '', '',
         'acctnum',      'varchar',     '', $char_d, '', '',
         '_password',    'varchar',     '', $char_d, '', '',
         'location',     'varchar', 'NULL', $char_d, '', '',
-        #cs
-        #rep
+        #installer (rep)
       ],
       'primary_key'  => 'svcnum',
-      'unique'       => [], #system/type/acctnum??
+      'unique'       => [],
       'index'        => [],
       'foreign_keys' => [
                           { columns    => [ 'svcnum' ],
                             table      => 'cust_svc',
                           },
+                          { columns    => [ 'alarmsystemnum' ],
+                            table      => 'alarm_system',
+                          },
+                          { columns    => [ 'alarmtypenum' ],
+                            table      => 'alarm_type',
+                          },
+                          { columns    => [ 'alarmstationnum' ],
+                            table      => 'alarm_station',
+                          },
+                        ],
+    },
+
+    'alarm_system' => { #vendors
+      'columns' => [
+        'alarmsystemnum',  'serial',     '',      '', '', '',
+        'agentnum',           'int', 'NULL',      '', '', '',
+        'systemname',     'varchar',     '', $char_d, '', '',
+        'disabled',          'char', 'NULL',       1, '', '', 
+      ],
+      'primary_key' => 'alarmsystemnum',
+      'unique'      => [ ['agentnum', 'systemname'] ],
+      'index'       => [ ['agentnum'], ['disabled'] ],
+      'foreign_keys' => [
+                          { columns    => [ 'agentnum' ],
+                            table      => 'agent',
+                          },
+                        ],
+    },
+
+    'alarm_type' => { #inputs and outputs
+      'columns' => [
+        'alarmtypenum', 'serial',     '',      '', '', '',
+        'agentnum',        'int', 'NULL',      '', '', '',
+        'inputs',          'int',     '', '', '', '',
+        'outputs',         'int',     '', '', '', '',
+        'disabled',       'char', 'NULL',       1, '', '', 
+      ],
+      'primary_key' => 'alarmtypenum',
+      'unique'      => [ ['agentnum', 'inputs', 'outputs'] ],
+      'index'       => [ ['agentnum'], ['disabled'] ],
+      'foreign_keys' => [
+                          { columns    => [ 'agentnum' ],
+                            table      => 'agent',
+                          },
+                        ],
+    },
+
+    'alarm_station' => { #central station (where the alarm reports to)
+      'columns' => [
+        'alarmstationnum', 'serial',     '',      '', '', '',
+        'agentnum',           'int', 'NULL',      '', '', '',
+        'stationname',    'varchar',     '', $char_d, '', '',
+        'disabled',          'char', 'NULL',       1, '', '', 
+      ],
+      'primary_key' => 'alarmstationnum',
+      'unique'      => [ ['agentnum', 'stationname'], ],
+      'index'       => [ ['agentnum'], ['disabled'] ],
+      'foreign_keys' => [
+                          { columns    => [ 'agentnum' ],
+                            table      => 'agent',
+                          },
                         ],
     },