migrations/Expediting/Version20200309160532_ExpeditingShipmentDocumentationKit.php line 1

  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations\Expediting;
  4. use App\Doctrine\Type\Expediting\DocumentationKitStatus;
  5. use App\Doctrine\Type\Expediting\TransitType;
  6. use Doctrine\DBAL\Schema\Schema;
  7. use Doctrine\Migrations\AbstractMigration;
  8. /**
  9.  * Auto-generated Migration: Please modify to your needs!
  10.  */
  11. final class Version20200309160532_ExpeditingShipmentDocumentationKit extends AbstractMigration
  12. {
  13.     public function getDescription(): string
  14.     {
  15.         return 'Add shipment documentation kit table';
  16.     }
  17.     public function up(Schema $schema): void
  18.     {
  19.         $transitType TransitType::getName();
  20.         $documentationKitStatus DocumentationKitStatus::getName();
  21.         $defaultStatus DocumentationKitStatus::DRAFTED->value;
  22.         $this->addSql("CREATE TABLE expediting_shipment_documentation_kit (
  23.             id                              SERIAL PRIMARY KEY,
  24.             shipment_id                     INTEGER                       NOT NULL REFERENCES public.expediting_shipment (id),
  25.             transit_type                    {$transitType}                NOT NULL,
  26.             status                          {$documentationKitStatus}     NOT NULL DEFAULT '{$defaultStatus}',
  27.             data                            JSONB,
  28.             created_by                      INTEGER                       NOT NULL REFERENCES public.user (id),
  29.             updated_by                      INTEGER                                REFERENCES public.user (id),
  30.             created_at                      TIMESTAMP(0) WITH TIME ZONE   NOT NULL DEFAULT CURRENT_TIMESTAMP,
  31.             updated_at                      TIMESTAMP(0) WITH TIME ZONE,
  32.             deleted_at                      TIMESTAMP(0) WITH TIME ZONE
  33.         )");
  34.         $this->addSql("COMMENT ON COLUMN expediting_shipment_documentation_kit.data IS '(DC2Type:json_document)'");
  35.         $this->addSql("CREATE INDEX expediting_shipment_documentation_kit_created_by_idx ON expediting_shipment_documentation_kit (created_by)");
  36.         $this->addSql("CREATE INDEX expediting_shipment_documentation_kit_updated_by_idx ON expediting_shipment_documentation_kit (updated_by)");
  37.     }
  38.     public function down(Schema $schema): void
  39.     {
  40.         $this->addSql("DROP TABLE IF EXISTS expediting_shipment_documentation_kit");
  41.     }
  42. }