<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Migration 4 - Changes from db change paintech, sprint 12 and 13
*/
final class Version20230929113725 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
$this->addSql("CREATE TABLE IF NOT EXISTS `tc_board_activity_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`company_id` int(11) NOT NULL,
`board_id` int(11) DEFAULT NULL,
`form_id` int(11) DEFAULT NULL,
`action` varchar(255) NOT NULL,
`from_data` mediumtext DEFAULT NULL,
`to_data` mediumtext DEFAULT NULL,
`done_at` datetime NOT NULL,
`done_by` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `company_id` (`company_id`),
KEY `done_by` (`done_by`),
KEY `board_id` (`board_id`),
KEY `form_id` (`form_id`),
CONSTRAINT `tc_board_activity_log_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `company` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT `tc_board_activity_log_ibfk_3` FOREIGN KEY (`done_by`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `tc_board_activity_log_ibfk_4` FOREIGN KEY (`board_id`) REFERENCES `tc_board` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT `tc_board_activity_log_ibfk_5` FOREIGN KEY (`form_id`) REFERENCES `tc_forms` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=242 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;");
$this->addSql("CREATE TABLE IF NOT EXISTS `tc_board_column_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`company_id` int(11) NOT NULL,
`board_id` int(11) NOT NULL,
`column_id` int(11) NOT NULL,
`user_id` int(11) DEFAULT NULL,
`created_at` datetime NOT NULL,
`assigned_by` int(11) NOT NULL,
`assigned_at` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `tc_board_column_user_ibfk_1` (`company_id`),
KEY `tc_board_column_user_ibfk_2` (`board_id`),
KEY `tc_board_column_user_ibfk_3` (`column_id`),
KEY `tc_board_column_user_ibfk_4` (`user_id`),
KEY `tc_board_column_user_ibfk_5` (`assigned_by`),
CONSTRAINT `tc_board_column_user_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `company` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT `tc_board_column_user_ibfk_2` FOREIGN KEY (`board_id`) REFERENCES `tc_board` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT `tc_board_column_user_ibfk_3` FOREIGN KEY (`column_id`) REFERENCES `tc_board_columns` (`id`),
CONSTRAINT `tc_board_column_user_ibfk_4` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`),
CONSTRAINT `tc_board_column_user_ibfk_5` FOREIGN KEY (`assigned_by`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;");
$this->addSql("CREATE TABLE IF NOT EXISTS `tc_board_row_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`company_id` int(11) NOT NULL,
`board_id` int(11) NOT NULL,
`row_id` int(11) NOT NULL,
`user_id` int(11) DEFAULT NULL,
`created_at` datetime NOT NULL,
`assigned_by` int(11) NOT NULL,
`assigned_at` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `tc_board_row_user_ibfk_1` (`company_id`),
KEY `tc_board_row_user_ibfk_2` (`board_id`),
KEY `tc_board_row_user_ibfk_3` (`row_id`),
KEY `tc_board_row_user_ibfk_4` (`user_id`),
KEY `tc_board_row_user_ibfk_5` (`assigned_by`),
CONSTRAINT `tc_board_row_user_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `company` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT `tc_board_row_user_ibfk_2` FOREIGN KEY (`board_id`) REFERENCES `tc_board` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT `tc_board_row_user_ibfk_3` FOREIGN KEY (`row_id`) REFERENCES `tc_board_rows` (`id`),
CONSTRAINT `tc_board_row_user_ibfk_4` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`),
CONSTRAINT `tc_board_row_user_ibfk_5` FOREIGN KEY (`assigned_by`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;");
$this->addSql("ALTER TABLE `tc_card_activity_log` DROP FOREIGN KEY `tc_card_activity_log_ibfk_2`; ");
$this->addSql("ALTER TABLE `tc_card_activity_log` ADD CONSTRAINT `tc_card_activity_log_ibfk_2` FOREIGN KEY (`card_id`) REFERENCES `tc_board_cards`(`id`) ON DELETE CASCADE ON UPDATE NO ACTION; ");
$this->addSql("ALTER TABLE `tc_card_activity_log` DROP FOREIGN KEY `tc_card_activity_log_ibfk_3`; ");
$this->addSql("ALTER TABLE `tc_card_activity_log` ADD CONSTRAINT `tc_card_activity_log_ibfk_3` FOREIGN KEY (`done_by`) REFERENCES `user`(`id`) ON DELETE CASCADE ON UPDATE NO ACTION;");
$this->addSql("ALTER TABLE `company_settings`
ADD `has_skill` TINYINT(1) NOT NULL DEFAULT '0' AFTER `has_draft_cards`,
ADD `has_auto_refresh` TINYINT(1) NOT NULL DEFAULT '0' AFTER `has_skill`,
ADD `has_generate_report` TINYINT(1) NOT NULL DEFAULT '0' AFTER `has_auto_refresh`,
ADD `has_tcard_layout` TINYINT(1) NOT NULL DEFAULT '1' AFTER `has_generate_report`;");
$this->addSql("ALTER TABLE `company_settings` ADD `enable_assign_user_to_row` TINYINT(1) NOT NULL DEFAULT '0' AFTER `has_tcard_layout`;");
$this->addSql("ALTER TABLE `company_settings` ADD `enable_assign_user_to_column` TINYINT(1) NOT NULL DEFAULT '0' AFTER `enable_assign_user_to_row`;");
$this->addSql("ALTER TABLE `tc_forms` ADD `card_color_field_id` INT NULL DEFAULT NULL AFTER `is_deleted`;");
$this->addSql("ALTER TABLE `tc_forms` ADD INDEX(`card_color_field_id`);");
$this->addSql("ALTER TABLE `tc_forms` ADD FOREIGN KEY (`card_color_field_id`) REFERENCES `tc_form_field`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;");
$this->addSql("ALTER TABLE `tc_forms` ADD `show_refid_as_card_header` TINYINT(1) NULL DEFAULT '1' AFTER `card_color_field_id`;");
$this->addSql("ALTER TABLE `tc_report_generation` CHANGE `updated_at` `updated_at` DATETIME NULL DEFAULT NULL;");
$this->addSql("ALTER TABLE `tc_report_generation` CHANGE `deleted_at` `deleted_at` DATETIME NULL DEFAULT NULL;");
$this->addSql("ALTER TABLE `tc_report_generation` ADD `has_serial_number` TINYINT NOT NULL DEFAULT '0' AFTER `has_search`;");
$this->addSql("ALTER TABLE `tc_report_generation_form_fields` ADD `board_id` INT(11) NULL DEFAULT NULL AFTER `form_id`;");
$this->addSql("ALTER TABLE `tc_report_generation_form_fields` ADD INDEX(`board_id`);");
$this->addSql("ALTER TABLE `tc_report_generation_form_fields` ADD FOREIGN KEY (`board_id`) REFERENCES `tc_board`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;");
$this->addSql("ALTER TABLE `tc_board_cards` ADD `sort_order` INT NOT NULL DEFAULT '1' AFTER `row_id`;");
$this->addSql("ALTER TABLE `tc_form_field` CHANGE `defualt_value` `defualt_value` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL;");
$this->addSql("INSERT INTO `terminology` (`id`, `terminology_key`, `singular_text`, `plural_text`) VALUES (NULL, 'full_capacity', 'Full Capacity', 'Full Capacity');");
}
public function down(Schema $schema): void
{
$this->addSql('DROP TABLE IF EXISTS `tc_board_activity_log`;');
$this->addSql('DROP TABLE IF EXISTS `tc_board_column_user`;');
$this->addSql('DROP TABLE IF EXISTS `tc_board_row_user`;');
$this->addSql("ALTER TABLE `tc_card_activity_log` DROP FOREIGN KEY `tc_card_activity_log_ibfk_2`;");
$this->addSql('ALTER TABLE `tc_card_activity_log` ADD CONSTRAINT `tc_card_activity_log_ibfk_2` FOREIGN KEY (`card_id`) REFERENCES `tc_board_cards`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;');
$this->addSql("ALTER TABLE `tc_card_activity_log` DROP FOREIGN KEY `tc_card_activity_log_ibfk_3`;");
$this->addSql('ALTER TABLE `tc_card_activity_log` ADD CONSTRAINT `tc_card_activity_log_ibfk_3` FOREIGN KEY (`done_by`) REFERENCES `user`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;');
$this->addSql('ALTER TABLE `company_settings` DROP IF EXISTS `has_skill`;');
$this->addSql('ALTER TABLE `company_settings` DROP IF EXISTS `has_auto_refresh`;');
$this->addSql('ALTER TABLE `company_settings` DROP IF EXISTS `has_generate_report`;');
$this->addSql('ALTER TABLE `company_settings` DROP IF EXISTS `has_tcard_layout`;');
$this->addSql('ALTER TABLE `company_settings` DROP IF EXISTS `enable_assign_user_to_row`;');
$this->addSql('ALTER TABLE `company_settings` DROP IF EXISTS `enable_assign_user_to_column`;');
$this->addSql('ALTER TABLE `tc_forms` DROP IF EXISTS `card_color_field_id`;');
$this->addSql('ALTER TABLE `tc_forms` DROP IF EXISTS `show_refid_as_card_header`;');
$this->addSql('ALTER TABLE `tc_report_generation` DROP IF EXISTS `has_serial_number`;');
$this->addSql('ALTER TABLE `tc_report_generation_form_fields` DROP IF EXISTS `board_id`;');
$this->addSql('ALTER TABLE `tc_board_cards` DROP IF EXISTS `sort_order`;');
$this->addSql('ALTER TABLE `tc_form_field` CHANGE `defualt_value` `defualt_value` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;');
$this->addSql('DELETE FROM `terminology` WHERE `terminology`.`terminology_key` = ?', array('full_capacity'));
}
}