<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20221212133617 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add ManyToMany relation between Property Visit Voucher, neighborhood and city';
}
public function up(Schema $schema): void
{
$this->addSql('CREATE TABLE property_visit_voucher_city (property_visit_voucher_id INT NOT NULL, city_id INT NOT NULL, PRIMARY KEY(property_visit_voucher_id, city_id))');
$this->addSql('CREATE INDEX IDX_34FCD3E0392F7DE0 ON property_visit_voucher_city (property_visit_voucher_id)');
$this->addSql('CREATE INDEX IDX_34FCD3E08BAC62AF ON property_visit_voucher_city (city_id)');
$this->addSql('CREATE TABLE property_visit_voucher_neighborhood (property_visit_voucher_id INT NOT NULL, neighborhood_id INT NOT NULL, PRIMARY KEY(property_visit_voucher_id, neighborhood_id))');
$this->addSql('CREATE INDEX IDX_18FB4D5C392F7DE0 ON property_visit_voucher_neighborhood (property_visit_voucher_id)');
$this->addSql('CREATE INDEX IDX_18FB4D5C803BB24B ON property_visit_voucher_neighborhood (neighborhood_id)');
$this->addSql('ALTER TABLE property_visit_voucher_city ADD CONSTRAINT FK_34FCD3E0392F7DE0 FOREIGN KEY (property_visit_voucher_id) REFERENCES property_visit_voucher (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE property_visit_voucher_city ADD CONSTRAINT FK_34FCD3E08BAC62AF FOREIGN KEY (city_id) REFERENCES city (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE property_visit_voucher_neighborhood ADD CONSTRAINT FK_18FB4D5C392F7DE0 FOREIGN KEY (property_visit_voucher_id) REFERENCES property_visit_voucher (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE property_visit_voucher_neighborhood ADD CONSTRAINT FK_18FB4D5C803BB24B FOREIGN KEY (neighborhood_id) REFERENCES neighborhood (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE property_visit_voucher DROP CONSTRAINT fk_57634dbf8bac62af');
$this->addSql('ALTER TABLE property_visit_voucher DROP CONSTRAINT fk_57634dbf803bb24b');
$this->addSql('DROP INDEX idx_57634dbf8bac62af');
$this->addSql('DROP INDEX idx_57634dbf803bb24b');
$this->addSql('ALTER TABLE property_visit_voucher DROP city_id');
$this->addSql('ALTER TABLE property_visit_voucher DROP neighborhood_id');
}
public function down(Schema $schema): void
{
$this->addSql('DROP TABLE property_visit_voucher_city');
$this->addSql('DROP TABLE property_visit_voucher_neighborhood');
$this->addSql('ALTER TABLE property_visit_voucher ADD city_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE property_visit_voucher ADD neighborhood_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE property_visit_voucher ADD CONSTRAINT fk_57634dbf8bac62af FOREIGN KEY (city_id) REFERENCES city (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE property_visit_voucher ADD CONSTRAINT fk_57634dbf803bb24b FOREIGN KEY (neighborhood_id) REFERENCES neighborhood (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('CREATE INDEX idx_57634dbf8bac62af ON property_visit_voucher (city_id)');
$this->addSql('CREATE INDEX idx_57634dbf803bb24b ON property_visit_voucher (neighborhood_id)');
}
}