<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20221202143634 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
$this->connection->update('news', [
'is_published' => true,
'published_at' => (new \DateTime())->format('Y-m-d H:i:s'),
'published_by_id' => 1,
], ['1' => 1]);
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE issue (id SERIAL NOT NULL, issue_topic_id INT NOT NULL, sport_object_id INT DEFAULT NULL, organization_id INT DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL, body VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_12AD233EC8FD0A96 ON issue (issue_topic_id)');
$this->addSql('CREATE INDEX IDX_12AD233E8AFAE46 ON issue (sport_object_id)');
$this->addSql('CREATE INDEX IDX_12AD233E32C8A3DE ON issue (organization_id)');
$this->addSql('COMMENT ON TABLE issue IS \'Жалобы пользователей\'');
$this->addSql('COMMENT ON COLUMN issue.created_at IS \'Дата создания\'');
$this->addSql('COMMENT ON COLUMN issue.body IS \'Текст жалобы\'');
$this->addSql('CREATE TABLE issue_topic (id SERIAL NOT NULL, created_by_id INT NOT NULL, removed_by_id INT DEFAULT NULL, published_by_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL, removed_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, is_published BOOLEAN NOT NULL, published_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_FCAB748B03A8386 ON issue_topic (created_by_id)');
$this->addSql('CREATE INDEX IDX_FCAB7482BD701DA ON issue_topic (removed_by_id)');
$this->addSql('CREATE INDEX IDX_FCAB7485B075477 ON issue_topic (published_by_id)');
$this->addSql('COMMENT ON TABLE issue_topic IS \'Типы жалоб пользователей\'');
$this->addSql('COMMENT ON COLUMN issue_topic.name IS \'Наименование\'');
$this->addSql('COMMENT ON COLUMN issue_topic.removed_at IS \'Когда удалено\'');
$this->addSql('COMMENT ON COLUMN issue_topic.is_published IS \'Признак публикации\'');
$this->addSql('COMMENT ON COLUMN issue_topic.published_at IS \'Дата публикации\'');
$this->addSql('ALTER TABLE issue ADD CONSTRAINT FK_12AD233EC8FD0A96 FOREIGN KEY (issue_topic_id) REFERENCES issue_topic (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE issue ADD CONSTRAINT FK_12AD233E8AFAE46 FOREIGN KEY (sport_object_id) REFERENCES sport_object (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE issue ADD CONSTRAINT FK_12AD233E32C8A3DE FOREIGN KEY (organization_id) REFERENCES organization (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE issue_topic ADD CONSTRAINT FK_FCAB748B03A8386 FOREIGN KEY (created_by_id) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE issue_topic ADD CONSTRAINT FK_FCAB7482BD701DA FOREIGN KEY (removed_by_id) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE issue_topic ADD CONSTRAINT FK_FCAB7485B075477 FOREIGN KEY (published_by_id) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE news ALTER is_published SET NOT NULL');
}
public function postUp(Schema $schema): void
{
$arr = [
'created_by_id' => 1,
'is_published' => true,
'published_at' => (new \DateTime())->format('Y-m-d H:i:s'),
'published_by_id' => 1,
];
$topics = ['Не актуальная информация', 'Невозможно дозвониться', 'Другая причина'];
foreach ($topics as $topic) {
$resArr = array_merge($arr, ['name' => $topic]);
$this->connection->insert('issue_topic', $resArr);
}
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE issue DROP CONSTRAINT FK_12AD233EC8FD0A96');
$this->addSql('ALTER TABLE issue DROP CONSTRAINT FK_12AD233E8AFAE46');
$this->addSql('ALTER TABLE issue DROP CONSTRAINT FK_12AD233E32C8A3DE');
$this->addSql('ALTER TABLE issue_topic DROP CONSTRAINT FK_FCAB748B03A8386');
$this->addSql('ALTER TABLE issue_topic DROP CONSTRAINT FK_FCAB7482BD701DA');
$this->addSql('ALTER TABLE issue_topic DROP CONSTRAINT FK_FCAB7485B075477');
$this->addSql('DROP TABLE issue');
$this->addSql('DROP TABLE issue_topic');
$this->addSql('ALTER TABLE news ALTER is_published DROP NOT NULL');
}
}