<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20230223144303 extends AbstractMigration
{
public function getDescription(): string
{
return 'Create schema for event managements module';
}
public function up(Schema $schema): void
{
$this->addSql('CREATE SCHEMA event_managment');
$this->addSql('CREATE SEQUENCE event_managment.event_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE event_managment.event_sub_type_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE event_managment.event_type_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE event_managment.location_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE event_managment.participant_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE event_managment.photo_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE TABLE event_managment.event (id VARCHAR(255) NOT NULL, event_sub_type_id VARCHAR(255) NOT NULL, location_id VARCHAR(255) NOT NULL, start_date TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, end_date TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, subscription_limit_date TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, message_to_network TEXT DEFAULT NULL, message_to_external TEXT DEFAULT NULL, video_url TEXT DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_A06EDF33111D03E7 ON event_managment.event (event_sub_type_id)');
$this->addSql('CREATE UNIQUE INDEX UNIQ_A06EDF3364D218E ON event_managment.event (location_id)');
$this->addSql('CREATE TABLE event_managment.event_sub_type (id VARCHAR(255) NOT NULL, event_type_id VARCHAR(255) DEFAULT NULL, parent_id VARCHAR(255) DEFAULT NULL, code VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, rank INT DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_8F9C3379401B253C ON event_managment.event_sub_type (event_type_id)');
$this->addSql('CREATE INDEX IDX_8F9C3379727ACA70 ON event_managment.event_sub_type (parent_id)');
$this->addSql('CREATE TABLE event_managment.event_type (id VARCHAR(255) NOT NULL, code VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, rank INT DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE TABLE event_managment.location (id VARCHAR(255) NOT NULL, city_id INT NOT NULL, name VARCHAR(255) NOT NULL, email VARCHAR(255) DEFAULT NULL, phone VARCHAR(255) DEFAULT NULL, address_principal VARCHAR(255) NOT NULL, address_complement VARCHAR(255) DEFAULT NULL, zip_code VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_C3AF6A968BAC62AF ON event_managment.location (city_id)');
$this->addSql('CREATE TABLE event_managment.participant (id VARCHAR(255) NOT NULL, event_id VARCHAR(255) NOT NULL, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, phone VARCHAR(255) NOT NULL, status VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_9776767A71F7E88B ON event_managment.participant (event_id)');
$this->addSql('CREATE TABLE event_managment.photo (id VARCHAR(255) NOT NULL, event_id VARCHAR(255) DEFAULT NULL, path VARCHAR(255) NOT NULL, position INT DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_8F77518C71F7E88B ON event_managment.photo (event_id)');
$this->addSql('ALTER TABLE event_managment.event ADD CONSTRAINT FK_A06EDF33111D03E7 FOREIGN KEY (event_sub_type_id) REFERENCES event_managment.event_sub_type (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE event_managment.event ADD CONSTRAINT FK_A06EDF3364D218E FOREIGN KEY (location_id) REFERENCES event_managment.location (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE event_managment.event_sub_type ADD CONSTRAINT FK_8F9C3379401B253C FOREIGN KEY (event_type_id) REFERENCES event_managment.event_type (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE event_managment.event_sub_type ADD CONSTRAINT FK_8F9C3379727ACA70 FOREIGN KEY (parent_id) REFERENCES event_managment.event_sub_type (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE event_managment.location ADD CONSTRAINT FK_C3AF6A968BAC62AF FOREIGN KEY (city_id) REFERENCES city (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE event_managment.participant ADD CONSTRAINT FK_9776767A71F7E88B FOREIGN KEY (event_id) REFERENCES event_managment.event (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE event_managment.photo ADD CONSTRAINT FK_8F77518C71F7E88B FOREIGN KEY (event_id) REFERENCES event_managment.event (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
}
public function down(Schema $schema): void
{
$this->addSql('DROP SEQUENCE event_managment.event_id_seq CASCADE');
$this->addSql('DROP SEQUENCE event_managment.event_sub_type_id_seq CASCADE');
$this->addSql('DROP SEQUENCE event_managment.event_type_id_seq CASCADE');
$this->addSql('DROP SEQUENCE event_managment.location_id_seq CASCADE');
$this->addSql('DROP SEQUENCE event_managment.participant_id_seq CASCADE');
$this->addSql('DROP SEQUENCE event_managment.photo_id_seq CASCADE');
$this->addSql('ALTER TABLE event_managment.event DROP CONSTRAINT FK_A06EDF33111D03E7');
$this->addSql('ALTER TABLE event_managment.event DROP CONSTRAINT FK_A06EDF3364D218E');
$this->addSql('ALTER TABLE event_managment.event_sub_type DROP CONSTRAINT FK_8F9C3379401B253C');
$this->addSql('ALTER TABLE event_managment.event_sub_type DROP CONSTRAINT FK_8F9C3379727ACA70');
$this->addSql('ALTER TABLE event_managment.location DROP CONSTRAINT FK_C3AF6A968BAC62AF');
$this->addSql('ALTER TABLE event_managment.participant DROP CONSTRAINT FK_9776767A71F7E88B');
$this->addSql('ALTER TABLE event_managment.photo DROP CONSTRAINT FK_8F77518C71F7E88B');
$this->addSql('DROP TABLE event_managment.event');
$this->addSql('DROP TABLE event_managment.event_sub_type');
$this->addSql('DROP TABLE event_managment.event_type');
$this->addSql('DROP TABLE event_managment.location');
$this->addSql('DROP TABLE event_managment.participant');
$this->addSql('DROP TABLE event_managment.photo');
}
}