151 lines
8.9 KiB
PHP
151 lines
8.9 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
use Phinx\Migration\AbstractMigration;
|
|
|
|
final class AddContractTables extends AbstractMigration
|
|
{
|
|
public function up(): void
|
|
{
|
|
if($this->getEnvironment() == "thetool") {
|
|
|
|
$contract = $this->table("Contract");
|
|
$contract->addColumn("orderproduct_id", "integer", ["null" => true, "default" => null]);
|
|
$contract->addColumn("owner_id", "integer", ["null" => false]);
|
|
$contract->addColumn("billingaddress_id", "integer", ["null" => true, "default" => null]);
|
|
$contract->addColumn("termination_id", "integer", ["null" => true, "default" => null]);
|
|
$contract->addColumn("product_id", "integer", ["null" => true, "default" => null]);
|
|
$contract->addColumn("product_name", "string", ["null" => false, "limit" => 255]);
|
|
$contract->addColumn("product_info", "text", ["null" => true, "default" => null]);
|
|
$contract->addColumn("matchcode", "string", ["null" => true, "default" => null, "limit" => 255]);
|
|
$contract->addColumn("amount", "decimal", ["null" => false, "precision" => 9, "scale" => 6]);
|
|
$contract->addColumn("sla_id", "integer", ["null" => true, "default" => null]);
|
|
$contract->addColumn("product_external", "integer", ["null" => false, "default" => 0, "limit" => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY]);
|
|
$contract->addColumn("product_external_id", "integer", ["null" => true, "default" => null]);
|
|
$contract->addColumn("price", "decimal", ["null" => false, "precision" => 14, "scale" => 4]);
|
|
$contract->addColumn("price_setup", "decimal", ["null" => false, "default" => 0, "precision" => 14, "scale" => 4]);
|
|
$contract->addColumn("price_nne", "decimal", ["null" => false, "default" => 0, "precision" => 14, "scale" => 4]);
|
|
$contract->addColumn("price_nbe", "decimal", ["null" => false, "default" => 0, "precision" => 14, "scale" => 4]);
|
|
$contract->addColumn("billing_delay", "integer", ["null" => false, "default" => 0]);
|
|
$contract->addColumn("billing_period", "integer", ["null" => false, "default" => 1]);
|
|
$contract->addColumn("order_date", "integer", ["null" => true, "default" => null]);
|
|
$contract->addColumn("finish_date", "integer", ["null" => true, "default" => null]);
|
|
$contract->addColumn("finish_date_by", "integer", ["null" => true, "default" => null]);
|
|
$contract->addColumn("cancel_date", "integer", ["null" => true, "default" => null]);
|
|
$contract->addColumn("cancel_date_by", "integer", ["null" => true, "default" => null]);
|
|
$contract->addColumn("imported_from", "string", ["null" => true, "default" => null, "limit" => 255]);
|
|
$contract->addColumn("imported_data", "string", ["null" => true, "default" => null, "limit" => 255]);
|
|
$contract->addColumn("note", "text", ["null" => true, "default" => null]);
|
|
$contract->addColumn("create_by", "integer", ["null" => false]);
|
|
$contract->addColumn("edit_by", "integer", ["null" => false]);
|
|
$contract->addColumn("create", "integer", ["null" => false]);
|
|
$contract->addColumn("edit", "integer", ["null" => false]);
|
|
$contract->create();
|
|
|
|
$ccg = $this->table("Contractconfiggroup");
|
|
$ccg->addColumn("name", "string", ["null" => false, "limit" => 255]);
|
|
$ccg->addColumn("create_by", "integer", ["null" => false]);
|
|
$ccg->addColumn("edit_by", "integer", ["null" => false]);
|
|
$ccg->addColumn("create", "integer", ["null" => false]);
|
|
$ccg->addColumn("edit", "integer", ["null" => false]);
|
|
$ccg->create();
|
|
|
|
$ccgp = $this->table("ContractconfiggroupProductgroup");
|
|
$ccgp->addColumn("productgroup_id", "integer", ["null" => false]);
|
|
$ccgp->addColumn("contractconfiggroup_id", "integer", ["null" => false]);
|
|
$ccgp->addColumn("create_by", "integer", ["null" => false]);
|
|
$ccgp->addColumn("edit_by", "integer", ["null" => false]);
|
|
$ccgp->addColumn("create", "integer", ["null" => false]);
|
|
$ccgp->addColumn("edit", "integer", ["null" => false]);
|
|
$ccgp->create();
|
|
|
|
$cci = $this->table("ContractconfigItem");
|
|
$cci->addColumn("order", "integer", ["null" => true, "default" => null]);
|
|
$cci->addColumn("contractconfiggroup_id", "integer", ["null" => false]);
|
|
$cci->addColumn("type", "string", ["null" => false, "limit" => 255]);
|
|
$cci->addColumn("multiple", "integer", ["null" => false, "default" => 0, "limit" => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY]);
|
|
$cci->addColumn("name", "string", ["null" => false, "limit" => 255]);
|
|
$cci->addColumn("displayname", "string", ["null" => true, "default" => null, "limit" => 255]);
|
|
$cci->addColumn("description", "text", ["null" => true, "default" => null]);
|
|
$cci->addColumn("typedata", "text", ["null" => true, "default" => null]);
|
|
$cci->addColumn("pattern", "string", ["null" => true, "limit" => 255]);
|
|
$cci->addColumn("create_by", "integer", ["null" => false]);
|
|
$cci->addColumn("edit_by", "integer", ["null" => false]);
|
|
$cci->addColumn("create", "integer", ["null" => false]);
|
|
$cci->addColumn("edit", "integer", ["null" => false]);
|
|
$cci->create();
|
|
|
|
$ccv = $this->table("ContractconfigValue");
|
|
$ccv->addColumn("contract_id", "integer", ["null" => false]);
|
|
$ccv->addColumn("item_id", "integer", ["null" => false]);
|
|
$ccv->addColumn("string", "string", ["null" => true, "default" => null]);
|
|
$ccv->addColumn("int", "integer", ["null" => true, "default" => null]);
|
|
$ccv->addColumn("number", "decimal", ["null" => true, "default" => null]);
|
|
$ccv->addColumn("json", "json", ["null" => true, "default" => null]);
|
|
$ccv->addColumn("create_by", "integer", ["null" => false]);
|
|
$ccv->addColumn("edit_by", "integer", ["null" => false]);
|
|
$ccv->addColumn("create", "integer", ["null" => false]);
|
|
$ccv->addColumn("edit", "integer", ["null" => false]);
|
|
$ccv->create();
|
|
|
|
$cf = $this->table("ContractFile");
|
|
$cf->addColumn("contract_id", "integer", ["null" => false]);
|
|
$cf->addColumn("file_id", "integer", ["null" => false]);
|
|
$cf->addColumn("name", "string", ["null" => false, "limit" => 255]);
|
|
$cf->addColumn("description", "text", ["null" => true, "default" => null]);
|
|
$cf->addColumn("create_by", "integer", ["null" => false]);
|
|
$cf->addColumn("edit_by", "integer", ["null" => false]);
|
|
$cf->addColumn("create", "integer", ["null" => false]);
|
|
$cf->addColumn("edit", "integer", ["null" => false]);
|
|
$cf->create();
|
|
|
|
$cj = $this->table("Contractjournal");
|
|
$cj->addColumn("contract_id", "integer", ["null" => false]);
|
|
$cj->addColumn("type", "string", ["null" => false, "limit" => 64]);
|
|
$cj->addColumn("value", "string", ["null" => true, "default" => null, "limit" => 64]);
|
|
$cj->addColumn("text", "text", ["null" => true, "default" => null]);
|
|
$cj->addColumn("create_by", "integer", ["null" => false]);
|
|
$cj->addColumn("edit_by", "integer", ["null" => false]);
|
|
$cj->addColumn("create", "integer", ["null" => false]);
|
|
$cj->addColumn("edit", "integer", ["null" => false]);
|
|
$cj->create();
|
|
|
|
$cl = $this->table("ContractLink");
|
|
$cl->addColumn("contract_id", "integer", ["null" => false]);
|
|
$cl->addColumn("origin_contract_id", "integer", ["null" => false]);
|
|
$cl->addColumn("type", "enum", ["null" => false, "values" => "link,upgrade,downgrade,relocation,productchange"]);
|
|
$cl->addColumn("change_action", "enum", ["null" => true, "default" => null, "values" => "keep,cancel"]);
|
|
$cl->addColumn("create_by", "integer", ["null" => false]);
|
|
$cl->addColumn("edit_by", "integer", ["null" => false]);
|
|
$cl->addColumn("create", "integer", ["null" => false]);
|
|
$cl->addColumn("edit", "integer", ["null" => false]);
|
|
$cl->create();
|
|
|
|
}
|
|
|
|
if($this->getEnvironment() == "addressdb") {
|
|
|
|
}
|
|
}
|
|
|
|
public function down(): void
|
|
{
|
|
if($this->getEnvironment() == "thetool") {
|
|
/*
|
|
$this->table("ContractLink")->drop()->save();
|
|
$this->table("Contractjournal")->drop()->save();
|
|
$this->table("ContractFile")->drop()->save();
|
|
$this->table("ContractconfigValue")->drop()->save();
|
|
$this->table("ContractconfigItem")->drop()->save();
|
|
$this->table("ContractconfiggroupProductgroup")->drop()->save();
|
|
$this->table("Contractconfiggroup")->drop()->save();
|
|
$this->table("Contract")->drop()->save();
|
|
*/
|
|
}
|
|
|
|
if($this->getEnvironment() == "addressdb") {
|
|
|
|
}
|
|
}
|
|
}
|