<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20250114173016 extends AbstractMigration
{
public function getDescription(): string
{
return 'Create Parcel entity and its relation with Application';
}
public function up(Schema $schema): void
{
$this->addSql('CREATE TABLE application_parcel (application_id UUID NOT NULL, parcel_id UUID NOT NULL, PRIMARY KEY(application_id, parcel_id))');
$this->addSql('CREATE INDEX IDX_79A851A53E030ACD ON application_parcel (application_id)');
$this->addSql('CREATE INDEX IDX_79A851A5465E670C ON application_parcel (parcel_id)');
$this->addSql('COMMENT ON COLUMN application_parcel.application_id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN application_parcel.parcel_id IS \'(DC2Type:uuid)\'');
$this->addSql('CREATE TABLE parcel (id UUID NOT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, precinct VARCHAR(255) DEFAULT NULL, map_sheet VARCHAR(255) DEFAULT NULL, registration_number VARCHAR(255) DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, deleted_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_C99B5D60DE12AB56 ON parcel (created_by)');
$this->addSql('CREATE INDEX IDX_C99B5D6016FE72E1 ON parcel (updated_by)');
$this->addSql('COMMENT ON COLUMN parcel.id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN parcel.created_by IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN parcel.updated_by IS \'(DC2Type:uuid)\'');
$this->addSql('ALTER TABLE application_parcel ADD CONSTRAINT FK_79A851A53E030ACD FOREIGN KEY (application_id) REFERENCES application (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE application_parcel ADD CONSTRAINT FK_79A851A5465E670C FOREIGN KEY (parcel_id) REFERENCES parcel (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE parcel ADD CONSTRAINT FK_C99B5D60DE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE parcel ADD CONSTRAINT FK_C99B5D6016FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
}
public function down(Schema $schema): void
{
$this->addSql('CREATE SCHEMA public');
$this->addSql('ALTER TABLE application_parcel DROP CONSTRAINT FK_79A851A53E030ACD');
$this->addSql('ALTER TABLE application_parcel DROP CONSTRAINT FK_79A851A5465E670C');
$this->addSql('ALTER TABLE parcel DROP CONSTRAINT FK_C99B5D60DE12AB56');
$this->addSql('ALTER TABLE parcel DROP CONSTRAINT FK_C99B5D6016FE72E1');
$this->addSql('DROP TABLE application_parcel');
$this->addSql('DROP TABLE parcel');
}
}