<?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 Version20250419132636 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add survey tables';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE api_dict_survey_question_type (id UUID NOT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, name VARCHAR(255) NOT NULL, code VARCHAR(255) DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_2184A5C35E237E06 ON api_dict_survey_question_type (name)');
$this->addSql('CREATE INDEX IDX_2184A5C3DE12AB56 ON api_dict_survey_question_type (created_by)');
$this->addSql('CREATE INDEX IDX_2184A5C316FE72E1 ON api_dict_survey_question_type (updated_by)');
$this->addSql('COMMENT ON COLUMN api_dict_survey_question_type.id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN api_dict_survey_question_type.created_by IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN api_dict_survey_question_type.updated_by IS \'(DC2Type:uuid)\'');
$this->addSql('CREATE TABLE api_dict_survey_status (id UUID NOT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, name VARCHAR(255) NOT NULL, code VARCHAR(255) DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_500C9C425E237E06 ON api_dict_survey_status (name)');
$this->addSql('CREATE INDEX IDX_500C9C42DE12AB56 ON api_dict_survey_status (created_by)');
$this->addSql('CREATE INDEX IDX_500C9C4216FE72E1 ON api_dict_survey_status (updated_by)');
$this->addSql('COMMENT ON COLUMN api_dict_survey_status.id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN api_dict_survey_status.created_by IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN api_dict_survey_status.updated_by IS \'(DC2Type:uuid)\'');
$this->addSql('CREATE TABLE api_dict_survey_type (id UUID NOT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, name VARCHAR(255) NOT NULL, code VARCHAR(255) DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_92B7E21E5E237E06 ON api_dict_survey_type (name)');
$this->addSql('CREATE INDEX IDX_92B7E21EDE12AB56 ON api_dict_survey_type (created_by)');
$this->addSql('CREATE INDEX IDX_92B7E21E16FE72E1 ON api_dict_survey_type (updated_by)');
$this->addSql('COMMENT ON COLUMN api_dict_survey_type.id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN api_dict_survey_type.created_by IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN api_dict_survey_type.updated_by IS \'(DC2Type:uuid)\'');
$this->addSql('CREATE TABLE survey (id UUID NOT NULL, type_id UUID DEFAULT NULL, status_id UUID DEFAULT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, title VARCHAR(255) NOT NULL, description TEXT DEFAULT NULL, deleted_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_AD5F9BFCC54C8C93 ON survey (type_id)');
$this->addSql('CREATE INDEX IDX_AD5F9BFC6BF700BD ON survey (status_id)');
$this->addSql('CREATE INDEX IDX_AD5F9BFCDE12AB56 ON survey (created_by)');
$this->addSql('CREATE INDEX IDX_AD5F9BFC16FE72E1 ON survey (updated_by)');
$this->addSql('COMMENT ON COLUMN survey.id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey.type_id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey.status_id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey.created_by IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey.updated_by IS \'(DC2Type:uuid)\'');
$this->addSql('CREATE TABLE survey_description_attachment (id UUID NOT NULL, survey_id UUID DEFAULT NULL, attachment_id UUID DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_31C3DA6CB3FE509D ON survey_description_attachment (survey_id)');
$this->addSql('CREATE INDEX IDX_31C3DA6C464E68B ON survey_description_attachment (attachment_id)');
$this->addSql('COMMENT ON COLUMN survey_description_attachment.id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey_description_attachment.survey_id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey_description_attachment.attachment_id IS \'(DC2Type:uuid)\'');
$this->addSql('CREATE TABLE survey_question (id UUID NOT NULL, type_id UUID DEFAULT NULL, survey_id UUID DEFAULT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, title VARCHAR(2048) DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_EA000F69C54C8C93 ON survey_question (type_id)');
$this->addSql('CREATE INDEX IDX_EA000F69B3FE509D ON survey_question (survey_id)');
$this->addSql('CREATE INDEX IDX_EA000F69DE12AB56 ON survey_question (created_by)');
$this->addSql('CREATE INDEX IDX_EA000F6916FE72E1 ON survey_question (updated_by)');
$this->addSql('COMMENT ON COLUMN survey_question.id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey_question.type_id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey_question.survey_id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey_question.created_by IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey_question.updated_by IS \'(DC2Type:uuid)\'');
$this->addSql('CREATE TABLE survey_question_answer (id UUID NOT NULL, question_id UUID DEFAULT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, text TEXT NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_7554B7191E27F6BF ON survey_question_answer (question_id)');
$this->addSql('CREATE INDEX IDX_7554B719DE12AB56 ON survey_question_answer (created_by)');
$this->addSql('CREATE INDEX IDX_7554B71916FE72E1 ON survey_question_answer (updated_by)');
$this->addSql('COMMENT ON COLUMN survey_question_answer.id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey_question_answer.question_id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey_question_answer.created_by IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey_question_answer.updated_by IS \'(DC2Type:uuid)\'');
$this->addSql('CREATE TABLE survey_question_answer_survey_question_choice (survey_question_answer_id UUID NOT NULL, survey_question_choice_id UUID NOT NULL, PRIMARY KEY(survey_question_answer_id, survey_question_choice_id))');
$this->addSql('CREATE INDEX IDX_1E432ECCB234F028 ON survey_question_answer_survey_question_choice (survey_question_answer_id)');
$this->addSql('CREATE INDEX IDX_1E432ECC8181DEFE ON survey_question_answer_survey_question_choice (survey_question_choice_id)');
$this->addSql('COMMENT ON COLUMN survey_question_answer_survey_question_choice.survey_question_answer_id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey_question_answer_survey_question_choice.survey_question_choice_id IS \'(DC2Type:uuid)\'');
$this->addSql('CREATE TABLE survey_question_choice (id UUID NOT NULL, survey_question_id UUID DEFAULT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, title VARCHAR(2048) DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_6E22A7AEA6DF29BA ON survey_question_choice (survey_question_id)');
$this->addSql('CREATE INDEX IDX_6E22A7AEDE12AB56 ON survey_question_choice (created_by)');
$this->addSql('CREATE INDEX IDX_6E22A7AE16FE72E1 ON survey_question_choice (updated_by)');
$this->addSql('COMMENT ON COLUMN survey_question_choice.id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey_question_choice.survey_question_id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey_question_choice.created_by IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN survey_question_choice.updated_by IS \'(DC2Type:uuid)\'');
$this->addSql('ALTER TABLE api_dict_survey_question_type ADD CONSTRAINT FK_2184A5C3DE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE api_dict_survey_question_type ADD CONSTRAINT FK_2184A5C316FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE api_dict_survey_status ADD CONSTRAINT FK_500C9C42DE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE api_dict_survey_status ADD CONSTRAINT FK_500C9C4216FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE api_dict_survey_type ADD CONSTRAINT FK_92B7E21EDE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE api_dict_survey_type ADD CONSTRAINT FK_92B7E21E16FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey ADD CONSTRAINT FK_AD5F9BFCC54C8C93 FOREIGN KEY (type_id) REFERENCES api_dict_survey_type (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey ADD CONSTRAINT FK_AD5F9BFC6BF700BD FOREIGN KEY (status_id) REFERENCES api_dict_survey_status (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey ADD CONSTRAINT FK_AD5F9BFCDE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey ADD CONSTRAINT FK_AD5F9BFC16FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_description_attachment ADD CONSTRAINT FK_31C3DA6CB3FE509D FOREIGN KEY (survey_id) REFERENCES survey (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_description_attachment ADD CONSTRAINT FK_31C3DA6C464E68B FOREIGN KEY (attachment_id) REFERENCES attachment (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_question ADD CONSTRAINT FK_EA000F69C54C8C93 FOREIGN KEY (type_id) REFERENCES api_dict_survey_question_type (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_question ADD CONSTRAINT FK_EA000F69B3FE509D FOREIGN KEY (survey_id) REFERENCES survey (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_question ADD CONSTRAINT FK_EA000F69DE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_question ADD CONSTRAINT FK_EA000F6916FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_question_answer ADD CONSTRAINT FK_7554B7191E27F6BF FOREIGN KEY (question_id) REFERENCES survey_question (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_question_answer ADD CONSTRAINT FK_7554B719DE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_question_answer ADD CONSTRAINT FK_7554B71916FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_question_answer_survey_question_choice ADD CONSTRAINT FK_1E432ECCB234F028 FOREIGN KEY (survey_question_answer_id) REFERENCES survey_question_answer (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_question_answer_survey_question_choice ADD CONSTRAINT FK_1E432ECC8181DEFE FOREIGN KEY (survey_question_choice_id) REFERENCES survey_question_choice (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_question_choice ADD CONSTRAINT FK_6E22A7AEA6DF29BA FOREIGN KEY (survey_question_id) REFERENCES survey_question (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_question_choice ADD CONSTRAINT FK_6E22A7AEDE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE survey_question_choice ADD CONSTRAINT FK_6E22A7AE16FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SCHEMA public');
$this->addSql('ALTER TABLE api_dict_survey_question_type DROP CONSTRAINT FK_2184A5C3DE12AB56');
$this->addSql('ALTER TABLE api_dict_survey_question_type DROP CONSTRAINT FK_2184A5C316FE72E1');
$this->addSql('ALTER TABLE api_dict_survey_status DROP CONSTRAINT FK_500C9C42DE12AB56');
$this->addSql('ALTER TABLE api_dict_survey_status DROP CONSTRAINT FK_500C9C4216FE72E1');
$this->addSql('ALTER TABLE api_dict_survey_type DROP CONSTRAINT FK_92B7E21EDE12AB56');
$this->addSql('ALTER TABLE api_dict_survey_type DROP CONSTRAINT FK_92B7E21E16FE72E1');
$this->addSql('ALTER TABLE survey DROP CONSTRAINT FK_AD5F9BFCC54C8C93');
$this->addSql('ALTER TABLE survey DROP CONSTRAINT FK_AD5F9BFC6BF700BD');
$this->addSql('ALTER TABLE survey DROP CONSTRAINT FK_AD5F9BFCDE12AB56');
$this->addSql('ALTER TABLE survey DROP CONSTRAINT FK_AD5F9BFC16FE72E1');
$this->addSql('ALTER TABLE survey_description_attachment DROP CONSTRAINT FK_31C3DA6CB3FE509D');
$this->addSql('ALTER TABLE survey_description_attachment DROP CONSTRAINT FK_31C3DA6C464E68B');
$this->addSql('ALTER TABLE survey_question DROP CONSTRAINT FK_EA000F69C54C8C93');
$this->addSql('ALTER TABLE survey_question DROP CONSTRAINT FK_EA000F69B3FE509D');
$this->addSql('ALTER TABLE survey_question DROP CONSTRAINT FK_EA000F69DE12AB56');
$this->addSql('ALTER TABLE survey_question DROP CONSTRAINT FK_EA000F6916FE72E1');
$this->addSql('ALTER TABLE survey_question_answer DROP CONSTRAINT FK_7554B7191E27F6BF');
$this->addSql('ALTER TABLE survey_question_answer DROP CONSTRAINT FK_7554B719DE12AB56');
$this->addSql('ALTER TABLE survey_question_answer DROP CONSTRAINT FK_7554B71916FE72E1');
$this->addSql('ALTER TABLE survey_question_answer_survey_question_choice DROP CONSTRAINT FK_1E432ECCB234F028');
$this->addSql('ALTER TABLE survey_question_answer_survey_question_choice DROP CONSTRAINT FK_1E432ECC8181DEFE');
$this->addSql('ALTER TABLE survey_question_choice DROP CONSTRAINT FK_6E22A7AEA6DF29BA');
$this->addSql('ALTER TABLE survey_question_choice DROP CONSTRAINT FK_6E22A7AEDE12AB56');
$this->addSql('ALTER TABLE survey_question_choice DROP CONSTRAINT FK_6E22A7AE16FE72E1');
$this->addSql('DROP TABLE api_dict_survey_question_type');
$this->addSql('DROP TABLE api_dict_survey_status');
$this->addSql('DROP TABLE api_dict_survey_type');
$this->addSql('DROP TABLE survey');
$this->addSql('DROP TABLE survey_description_attachment');
$this->addSql('DROP TABLE survey_question');
$this->addSql('DROP TABLE survey_question_answer');
$this->addSql('DROP TABLE survey_question_answer_survey_question_choice');
$this->addSql('DROP TABLE survey_question_choice');
}
}