<?php

namespace App\Database\Migrations;

use CodeIgniter\Database\Migration;

class CreateLabInfrastructure extends Migration {
  public function up() {
    $this->forge->addField([
      'EID' => ['type' => 'int', 'unsigned' => true, 'auto_increment'=> true],
      'IEID' => ['type' => 'varchar', 'constraint' => 50],
      'DepartmentID' => ['type' => 'int', 'constraint'=> 10, 'null'=> false],
      'InstrumentID' => ['type' => 'varchar', 'constraint'=> 150, 'null'=> true],
      'InstrumentName' => ['type' => 'varchar', 'constraint'=> 150, 'null'=> true],
      'WorkstationID' => ['type' => 'int', 'unsigned' => true ],
      'isEnable' => ['type' => 'bit', 'null'=> false],
      'EquipmentRole' => ['type' => 'varchar', 'constraint' => 1,  'null'=> false],
      'CreateDate' => ['type'=>'DATETIME', 'null' => true],
      'EndDate' => ['type'=>'DATETIME', 'null' => true]
    ]);
    $this->forge->addKey('EID', true);
    $this->forge->createTable('equipmentlist');

    $this->forge->addField([
      'InterfaceID' => ['type' => 'int', 'unsigned' => true, 'auto_increment'=> true],
      'InstrumentID' => ['type' => 'int', 'null'=> false],
      'SiteID' => ['type' => 'int', 'null'=> true],
      'InterfaceName' => ['type' => 'varchar', 'constraint'=> 150, 'null'=> true],
      'InterfaceDesc' => ['type' => 'varchar', 'constraint'=> 150, 'null'=> true],
      'Protocol' => ['type' => 'varchar', 'constraint'=> 50, 'null'=> true],
      'IPAddress' => ['type' => 'varchar', 'constraint'=> 50, 'null'=> true],
      'Port' => ['type' => 'varchar', 'constraint'=> 25, 'null'=> true],
      'COM' => ['type' => 'varchar', 'constraint'=> 5, 'null'=> true],
      'Baud' => ['type' => 'varchar', 'constraint'=> 10, 'null'=> true],
      'Data' => ['type' => 'varchar', 'constraint'=> 10, 'null'=> true],
      'Parity' => ['type' => 'varchar', 'constraint'=> 10, 'null'=> true],
      'Stop' => ['type' => 'varchar', 'constraint'=> 10, 'null'=> true],
      'CreateDate' => ['type'=>'DATETIME', 'null' => true],
      'EndDate' => ['type'=>'DATETIME', 'null' => true]
    ]);
    $this->forge->addKey('InterfaceID', true);
    $this->forge->createTable('comparameters');

    $this->forge->addField([
      'EquipmentID' => ['type' => 'int', 'unsigned' => true, 'auto_increment'=> true],
      'DeviceName' => ['type' => 'varchar', 'constraint' => 50,'null'=> false],
      'Description' => ['type' => 'varchar', 'constraint' => 50,'null'=> false],
      'SiteID' => ['type' => 'int', 'null'=> true],
      'LocationID' => ['type' => 'int', 'null'=> true],
      'DIDType' => ['type' => 'varchar', 'constraint'=>10, 'null'=> true],
      'DID' => ['type' => 'varchar', 'constraint'=>100, 'null'=> true],
      'MachineID' => ['type' => 'varchar', 'constraint'=>100, 'null'=> true],
      'IPAddress' => ['type' => 'varchar', 'constraint'=>25, 'null'=> true],
      'CreateDate' => ['type'=>'DATETIME', 'null' => true],
      'EndDate' => ['type'=>'DATETIME', 'null' => true]
    ]);
    $this->forge->addKey('EquipmentID', true);
    $this->forge->createTable('devicelist');
  }

  public function down() {
    $this->forge->dropTable('devicelist');
    $this->forge->dropTable('comparameters');
    $this->forge->dropTable('equipmentlist');
  }
}
