<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20210212184305 extends AbstractMigration
{
public function getDescription() : string
{
return '';
}
public function up(Schema $schema) : void
{
$this->addSql('ALTER TABLE accounting_entry CHANGE `createdAt` `created_at` DATETIME NOT NULL');
$this->addSql('ALTER TABLE accounting_entry CHANGE `updatedAt` `updated_at` DATETIME NOT NULL');
$this->addSql('ALTER TABLE accounting_entry CHANGE `createdBy` `created_by_id` INT DEFAULT NULL');
$this->addSql('ALTER TABLE accounting_entry CHANGE `updatedBy` `updated_by_id` INT DEFAULT NULL');
$this->addSql('ALTER TABLE cash_account_movement ADD updated_by_id INT DEFAULT NULL, ADD updated_at DATETIME NOT NULL DEFAULT NOW(), CHANGE createdby created_by_id INT DEFAULT NULL, CHANGE createdat created_at DATETIME NOT NULL');
$this->addSql('UPDATE cash_account_movement SET updated_at=created_at');
$this->addSql('UPDATE cash_account_movement SET created_by_id=1 WHERE created_by_id IS NULL');
$this->addSql('UPDATE cash_account_movement SET updated_by_id=created_by_id');
$this->addSql('ALTER TABLE frontend_message CHANGE `createdAt` `created_at` DATETIME NOT NULL');
$this->addSql('ALTER TABLE frontend_message CHANGE `updatedAt` `updated_at` DATETIME NOT NULL');
$this->addSql('ALTER TABLE frontend_message CHANGE `createdBy` `created_by_id` INT DEFAULT NULL');
$this->addSql('ALTER TABLE frontend_message CHANGE `updatedBy` `updated_by_id` INT DEFAULT NULL');
$this->addSql('ALTER TABLE holiday CHANGE `createdAt` `created_at` DATETIME NOT NULL');
$this->addSql('ALTER TABLE holiday CHANGE `updatedAt` `updated_at` DATETIME NOT NULL');
$this->addSql('ALTER TABLE holiday CHANGE `createdBy` `created_by_id` INT DEFAULT NULL');
$this->addSql('ALTER TABLE holiday CHANGE `updatedBy` `updated_by_id` INT DEFAULT NULL');
$this->addSql('ALTER TABLE orders ADD created_at DATETIME NOT NULL DEFAULT NOW(), CHANGE createdby created_by_id INT DEFAULT NULL');
// update orders date
$this->addSql('UPDATE orders SET orders.created_at=orders.date');
$this->addSql('UPDATE orders SET orders.updated_at=orders.created_at WHERE orders.updated_at IS NULL');
// updated created_by_id on orders based on existing information, or just set to 1 if can't figure it out
$this->addSql('UPDATE orders INNER JOIN order_activity ON order_activity.order_id=orders.id AND order_activity.type="order.placed" SET orders.created_by_id=order_activity.created_by_id WHERE orders.created_by_id IS NULL');
$this->addSql('UPDATE orders INNER JOIN customer ON customer.id=orders.customer_id SET orders.created_by_id=customer.user_id WHERE orders.source="Web" AND orders.created_by_id IS NULL');
$this->addSql('UPDATE orders SET orders.created_by_id=1 WHERE orders.created_by_id IS NULL');
$this->addSql('UPDATE orders SET orders.updated_by_id=orders.created_by_id WHERE orders.updated_by_id IS NULL');
$this->addSql('ALTER TABLE order_item ADD created_by_id INT DEFAULT NULL, ADD updated_by_id INT DEFAULT NULL');
// $this->addSql('UPDATE order_item JOIN orders ON orders.id = order_item.order_id SET order_item.created_by_id=orders.created_by_id, order_item.updated_by_id=orders.created_by_id');
$this->addSql('ALTER TABLE payment_transaction CHANGE `createdAt` `created_at` DATETIME NOT NULL');
$this->addSql('ALTER TABLE payment_transaction CHANGE `updatedAt` `updated_at` DATETIME NOT NULL');
$this->addSql('ALTER TABLE payment_transaction CHANGE `createdBy` `created_by_id` INT DEFAULT NULL');
$this->addSql('ALTER TABLE payment_transaction CHANGE `updatedBy` `updated_by_id` INT DEFAULT NULL');
$this->addSql('ALTER TABLE receipt CHANGE `createdAt` `created_at` DATETIME NOT NULL');
$this->addSql('ALTER TABLE receipt CHANGE `updatedAt` `updated_at` DATETIME NOT NULL');
$this->addSql('ALTER TABLE receipt CHANGE `createdBy` `created_by_id` INT DEFAULT NULL');
$this->addSql('ALTER TABLE receipt CHANGE `updatedBy` `updated_by_id` INT DEFAULT NULL');
// constraints and indices
$this->addSql('ALTER TABLE cash_account_movement ADD CONSTRAINT FK_D46F5691896DBBDE FOREIGN KEY (updated_by_id) REFERENCES users (id)');
$this->addSql('CREATE INDEX IDX_D46F5691896DBBDE ON cash_account_movement (updated_by_id)');
$this->addSql('ALTER TABLE order_item ADD CONSTRAINT FK_52EA1F09B03A8386 FOREIGN KEY (created_by_id) REFERENCES users (id)');
$this->addSql('ALTER TABLE order_item ADD CONSTRAINT FK_52EA1F09896DBBDE FOREIGN KEY (updated_by_id) REFERENCES users (id)');
$this->addSql('CREATE INDEX IDX_52EA1F09B03A8386 ON order_item (created_by_id)');
$this->addSql('CREATE INDEX IDX_52EA1F09896DBBDE ON order_item (updated_by_id)');
}
public function down(Schema $schema) : void
{
$this->addSql('ALTER TABLE accounting_entry CHANGE `created_at` `createdAt` DATETIME NOT NULL');
$this->addSql('ALTER TABLE accounting_entry CHANGE `updated_at` `updatedAt` DATETIME NOT NULL');
$this->addSql('ALTER TABLE accounting_entry CHANGE `created_by_id` `createdBy` INT DEFAULT NULL');
$this->addSql('ALTER TABLE accounting_entry CHANGE `updated_by_id` `updatedBy` INT DEFAULT NULL');
$this->addSql('ALTER TABLE cash_account_movement DROP FOREIGN KEY FK_D46F5691896DBBDE');
$this->addSql('DROP INDEX IDX_D46F5691896DBBDE ON cash_account_movement');
$this->addSql('ALTER TABLE cash_account_movement CHANGE `created_at` `createdAt` DATETIME NOT NULL, CHANGE `created_by_id` `createdBy` INT DEFAULT NULL, DROP updated_by_id, DROP updated_at');
$this->addSql('ALTER TABLE cash_account_movement ADD CONSTRAINT FK_8C51940FD3564642 FOREIGN KEY (createdBy) REFERENCES users (id)');
$this->addSql('ALTER TABLE frontend_message CHANGE `created_at` `createdAt` DATETIME NOT NULL');
$this->addSql('ALTER TABLE frontend_message CHANGE `updated_at` `updatedAt` DATETIME NOT NULL');
$this->addSql('ALTER TABLE frontend_message CHANGE `created_by_id` `createdBy` INT DEFAULT NULL');
$this->addSql('ALTER TABLE frontend_message CHANGE `updated_by_id` `updatedBy` INT DEFAULT NULL');
$this->addSql('ALTER TABLE holiday CHANGE `created_at` `createdAt` DATETIME NOT NULL');
$this->addSql('ALTER TABLE holiday CHANGE `updated_at` `updatedAt` DATETIME NOT NULL');
$this->addSql('ALTER TABLE holiday CHANGE `created_by_id` `createdBy` INT DEFAULT NULL');
$this->addSql('ALTER TABLE holiday CHANGE `updated_by_id` `updatedBy` INT DEFAULT NULL');
$this->addSql('ALTER TABLE order_item DROP FOREIGN KEY FK_52EA1F09B03A8386');
$this->addSql('ALTER TABLE order_item DROP FOREIGN KEY FK_52EA1F09896DBBDE');
$this->addSql('DROP INDEX IDX_52EA1F09B03A8386 ON order_item');
$this->addSql('DROP INDEX IDX_52EA1F09896DBBDE ON order_item');
$this->addSql('ALTER TABLE order_item DROP created_by_id, DROP updated_by_id');
$this->addSql('ALTER TABLE orders DROP created_at, CHANGE created_by_id createdBy INT DEFAULT NULL');
$this->addSql('ALTER TABLE orders ADD CONSTRAINT FK_E52FFDEED3564642 FOREIGN KEY (createdBy) REFERENCES users (id)');
$this->addSql('ALTER TABLE payment_transaction CHANGE `created_at` `createdAt` DATETIME NOT NULL');
$this->addSql('ALTER TABLE payment_transaction CHANGE `updated_at` `updatedAt` DATETIME NOT NULL');
$this->addSql('ALTER TABLE payment_transaction CHANGE `created_by_id` `createdBy` INT DEFAULT NULL');
$this->addSql('ALTER TABLE payment_transaction CHANGE `updated_by_id` `updatedBy` INT DEFAULT NULL');
$this->addSql('ALTER TABLE receipt CHANGE `created_at` `createdAt` DATETIME NOT NULL');
$this->addSql('ALTER TABLE receipt CHANGE `updated_at` `updatedAt` DATETIME NOT NULL');
$this->addSql('ALTER TABLE receipt CHANGE `created_by_id` `createdBy` INT DEFAULT NULL');
$this->addSql('ALTER TABLE receipt CHANGE `updated_by_id` `updatedBy` INT DEFAULT NULL');
}
public function isTransactional(): bool
{
return false;
}
}