<?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 Version20230615090743 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE question_answer (id INT AUTO_INCREMENT NOT NULL, question_id INT NOT NULL, survey_answer_id INT DEFAULT NULL, selected_choice_id INT DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_DD80652D1E27F6BF (question_id), INDEX IDX_DD80652DF650A2A (survey_answer_id), INDEX IDX_DD80652DC1F9753A (selected_choice_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE survey (id INT AUTO_INCREMENT NOT NULL, creator_id INT NOT NULL, moderator_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', state INT DEFAULT NULL, privacy INT DEFAULT NULL, stop_display_date DATETIME DEFAULT NULL, duration INT DEFAULT NULL, participation INT DEFAULT NULL, display_participation TINYINT(1) DEFAULT NULL, start_display_date DATETIME DEFAULT NULL, template TINYINT(1) DEFAULT NULL, INDEX IDX_AD5F9BFC61220EA6 (creator_id), INDEX IDX_AD5F9BFCD0AFA354 (moderator_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE survey_answer (id INT AUTO_INCREMENT NOT NULL, apartment_id INT DEFAULT NULL, user_id INT DEFAULT NULL, survey_id INT DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_F2D38249176DFE85 (apartment_id), INDEX IDX_F2D38249A76ED395 (user_id), INDEX IDX_F2D38249B3FE509D (survey_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE survey_question (id INT AUTO_INCREMENT NOT NULL, survey_id INT DEFAULT NULL, title VARCHAR(255) NOT NULL, description VARCHAR(255) DEFAULT NULL, trick VARCHAR(255) DEFAULT NULL, type INT NOT NULL, `order` INT NOT NULL, INDEX IDX_EA000F69B3FE509D (survey_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE survey_question_choice (id INT AUTO_INCREMENT NOT NULL, survey_question_id INT DEFAULT NULL, `order` INT NOT NULL, title VARCHAR(255) NOT NULL, INDEX IDX_6E22A7AEA6DF29BA (survey_question_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE question_answer ADD CONSTRAINT FK_DD80652D1E27F6BF FOREIGN KEY (question_id) REFERENCES survey_question (id)');
$this->addSql('ALTER TABLE question_answer ADD CONSTRAINT FK_DD80652DF650A2A FOREIGN KEY (survey_answer_id) REFERENCES survey_answer (id)');
$this->addSql('ALTER TABLE question_answer ADD CONSTRAINT FK_DD80652DC1F9753A FOREIGN KEY (selected_choice_id) REFERENCES survey_question_choice (id)');
$this->addSql('ALTER TABLE survey ADD CONSTRAINT FK_AD5F9BFC61220EA6 FOREIGN KEY (creator_id) REFERENCES weeke_user (id)');
$this->addSql('ALTER TABLE survey ADD CONSTRAINT FK_AD5F9BFCD0AFA354 FOREIGN KEY (moderator_id) REFERENCES weeke_user (id)');
$this->addSql('ALTER TABLE survey_answer ADD CONSTRAINT FK_F2D38249176DFE85 FOREIGN KEY (apartment_id) REFERENCES apartment (id)');
$this->addSql('ALTER TABLE survey_answer ADD CONSTRAINT FK_F2D38249A76ED395 FOREIGN KEY (user_id) REFERENCES weeke_user (id)');
$this->addSql('ALTER TABLE survey_answer ADD CONSTRAINT FK_F2D38249B3FE509D FOREIGN KEY (survey_id) REFERENCES survey (id)');
$this->addSql('ALTER TABLE survey_question ADD CONSTRAINT FK_EA000F69B3FE509D FOREIGN KEY (survey_id) REFERENCES survey (id)');
$this->addSql('ALTER TABLE survey_question_choice ADD CONSTRAINT FK_6E22A7AEA6DF29BA FOREIGN KEY (survey_question_id) REFERENCES survey_question (id)');
$this->addSql('ALTER TABLE message_target ADD survey_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE message_target ADD CONSTRAINT FK_7148B2F3B3FE509D FOREIGN KEY (survey_id) REFERENCES survey (id) ON DELETE CASCADE');
$this->addSql('CREATE INDEX IDX_7148B2F3B3FE509D ON message_target (survey_id)');
$this->addSql('ALTER TABLE moderation_event ADD survey_id INT DEFAULT NULL, CHANGE publication_status publication_status ENUM( \'waiting\', \'accepted\', \'rejected\') DEFAULT \'waiting\' ');
$this->addSql('ALTER TABLE moderation_event ADD CONSTRAINT FK_C8F4ED33B3FE509D FOREIGN KEY (survey_id) REFERENCES survey (id)');
$this->addSql('CREATE INDEX IDX_C8F4ED33B3FE509D ON moderation_event (survey_id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE message_target DROP FOREIGN KEY FK_7148B2F3B3FE509D');
$this->addSql('ALTER TABLE moderation_event DROP FOREIGN KEY FK_C8F4ED33B3FE509D');
$this->addSql('ALTER TABLE question_answer DROP FOREIGN KEY FK_DD80652D1E27F6BF');
$this->addSql('ALTER TABLE question_answer DROP FOREIGN KEY FK_DD80652DF650A2A');
$this->addSql('ALTER TABLE question_answer DROP FOREIGN KEY FK_DD80652DC1F9753A');
$this->addSql('ALTER TABLE survey DROP FOREIGN KEY FK_AD5F9BFC61220EA6');
$this->addSql('ALTER TABLE survey DROP FOREIGN KEY FK_AD5F9BFCD0AFA354');
$this->addSql('ALTER TABLE survey_answer DROP FOREIGN KEY FK_F2D38249176DFE85');
$this->addSql('ALTER TABLE survey_answer DROP FOREIGN KEY FK_F2D38249A76ED395');
$this->addSql('ALTER TABLE survey_answer DROP FOREIGN KEY FK_F2D38249B3FE509D');
$this->addSql('ALTER TABLE survey_question DROP FOREIGN KEY FK_EA000F69B3FE509D');
$this->addSql('ALTER TABLE survey_question_choice DROP FOREIGN KEY FK_6E22A7AEA6DF29BA');
$this->addSql('DROP TABLE question_answer');
$this->addSql('DROP TABLE survey');
$this->addSql('DROP TABLE survey_answer');
$this->addSql('DROP TABLE survey_question');
$this->addSql('DROP TABLE survey_question_choice');
$this->addSql('DROP INDEX IDX_C8F4ED33B3FE509D ON moderation_event');
$this->addSql('ALTER TABLE moderation_event DROP survey_id, CHANGE publication_status publication_status VARCHAR(255) DEFAULT \'waiting\'');
$this->addSql('DROP INDEX IDX_7148B2F3B3FE509D ON message_target');
$this->addSql('ALTER TABLE message_target DROP survey_id');
}
}