migrations/Delete/Version20241011145526_ExpeditingBatch.php line 1

  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations\Delete;
  4. use App\Doctrine\Type\Expediting\TransportMode;
  5. use Doctrine\DBAL\Schema\Schema;
  6. use Doctrine\Migrations\AbstractMigration;
  7. /**
  8.  * Auto-generated Migration: Please modify to your needs!
  9.  */
  10. final class Version20241011145526_ExpeditingBatch extends AbstractMigration
  11. {
  12.     public function getDescription(): string
  13.     {
  14.         return 'Add expediting batch';
  15.     }
  16.     public function up(Schema $schema): void
  17.     {
  18.         $transportModeType TransportMode::getName();
  19.         $this->addSql("CREATE TABLE expediting_z_batch (
  20.             id                              SERIAL PRIMARY KEY,
  21.             slug                            CHARACTER VARYING           NOT NULL,
  22.             reference                       CHARACTER VARYING           NOT NULL,
  23.             
  24.             jv                              BOOLEAN,
  25.             dg                              BOOLEAN,
  26.             transport_mode                  {$transportModeType}          NOT NULL,
  27.             carrier                         CHARACTER VARYING,
  28.             vessel                          CHARACTER VARYING,
  29.             bill_number                     CHARACTER VARYING,
  30.             booking_number                  CHARACTER VARYING,
  31.             vector_reference                CHARACTER VARYING,
  32.             place_of_loading                CHARACTER VARYING,
  33.             place_of_discharge              CHARACTER VARYING,
  34.             departure_country_code          CHARACTER VARYING             NOT NULL,
  35.             hub_country_code                CHARACTER VARYING,
  36.             
  37.             description                     CHARACTER VARYING,
  38.             buyer                           JSONB,
  39.             shipper                         JSONB,
  40.             consignee                       JSONB,
  41.             notify_party                    JSONB,
  42.             
  43.             form_m                          CHARACTER VARYING,
  44.             ba_number                       CHARACTER VARYING,
  45.             weight                          DECIMAL(18, 2),
  46.             volume                          DECIMAL(18, 2),
  47.             value                           DECIMAL(18, 2),
  48.             pickup_cost                     DECIMAL(18, 5),
  49.             freight_cost                    DECIMAL(18, 5),
  50.             green_lit_on                    DATE,
  51.             booked_on                       DATE,
  52.             etd                             DATE,
  53.             atd                             DATE,
  54.             eta                             DATE,
  55.             ata                             DATE,
  56.             customs_on                      DATE,
  57.             delivered_on                    DATE,
  58.             metadata                        JSONB,
  59.             created_by                      INTEGER                              REFERENCES public.user (id),
  60.             updated_by                      INTEGER                              REFERENCES public.user (id),
  61.             created_at                      TIMESTAMP(0) WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
  62.             updated_at                      TIMESTAMP(0) WITH TIME ZONE,
  63.             deleted_at                      TIMESTAMP(0) WITH TIME ZONE,
  64.             
  65.             CONSTRAINT expediting_z_batch_slug_key UNIQUE (slug),
  66.             CONSTRAINT expediting_z_batch_reference_key UNIQUE (reference)
  67.         )");
  68.         $this->addSql("COMMENT ON COLUMN expediting_z_batch.buyer IS '(DC2Type:json_document)'");
  69.         $this->addSql("COMMENT ON COLUMN expediting_z_batch.shipper IS '(DC2Type:json_document)'");
  70.         $this->addSql("COMMENT ON COLUMN expediting_z_batch.consignee IS '(DC2Type:json_document)'");
  71.         $this->addSql("COMMENT ON COLUMN expediting_z_batch.notify_party IS '(DC2Type:json_document)'");
  72.         $this->addSql("COMMENT ON COLUMN expediting_z_batch.metadata IS '(DC2Type:json_document)'");
  73.         $this->addSql("CREATE INDEX expediting_z_batch_created_by_idx ON expediting_z_batch (created_by)");
  74.         $this->addSql("CREATE INDEX expediting_z_batch_updated_by_idx ON expediting_z_batch (updated_by)");
  75.     }
  76.     public function down(Schema $schema): void
  77.     {
  78.         $this->addSql("DROP TABLE IF EXISTS expediting_z_batch");
  79.     }
  80. }