migrations/Delete/Version20241011190123_ExpeditingBox.php line 1

  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations\Delete;
  4. use App\Doctrine\Type\Expediting\CasingMaterial;
  5. use App\Doctrine\Type\Expediting\CasingType;
  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 Version20241011190123_ExpeditingBox extends AbstractMigration
  12. {
  13.     public function getDescription(): string
  14.     {
  15.         return 'Add expediting box';
  16.     }
  17.     public function up(Schema $schema): void
  18.     {
  19.         $casingTypeType CasingType::getName();
  20.         $casingMaterialType CasingMaterial::getName();
  21.         $this->addSql("CREATE TABLE expediting_z_box (
  22.             id                              SERIAL PRIMARY KEY,
  23.             container_id                    INTEGER                              REFERENCES expediting_z_container (id),
  24.             repacking_id                    INTEGER                              REFERENCES public.company (id),
  25.             slug                            CHARACTER VARYING           NOT NULL,
  26.             reference                       CHARACTER VARYING           NOT NULL,
  27.             order_numbers                   CHARACTER VARYING,
  28.             pickup_country_code             CHARACTER VARYING,
  29.             vendor                          CHARACTER VARYING,
  30.             batch                           CHARACTER VARYING,
  31.             hub                             CHARACTER VARYING,
  32.             
  33.             jv                              BOOLEAN,
  34.             dg                              BOOLEAN,
  35.             casing_type                     {$casingTypeType},
  36.             casing_material                 {$casingMaterialType},
  37.             length                          DECIMAL(18, 3),
  38.             width                           DECIMAL(18, 3),
  39.             height                          DECIMAL(18, 3),
  40.             weight                          DECIMAL(18, 3),
  41.             shipping_weight                 DECIMAL(18, 3),
  42.             value                           DECIMAL(18, 2),
  43.             items                           JSONB                       NOT NULL,
  44.             created_by                      INTEGER                              REFERENCES public.user (id),
  45.             updated_by                      INTEGER                              REFERENCES public.user (id),
  46.             created_at                      TIMESTAMP(0) WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
  47.             updated_at                      TIMESTAMP(0) WITH TIME ZONE,
  48.             deleted_at                      TIMESTAMP(0) WITH TIME ZONE,
  49.             
  50.             CONSTRAINT expediting_z_box_slug_key UNIQUE (slug),
  51.             CONSTRAINT expediting_z_box_reference_key UNIQUE (reference)
  52.         )");
  53.         $this->addSql("COMMENT ON COLUMN expediting_z_box.items IS '(DC2Type:json_document)'");
  54.         $this->addSql("CREATE INDEX expediting_z_box_batch_idx ON expediting_z_box (batch)");
  55.         $this->addSql("CREATE INDEX expediting_z_box_order_numbers_idx ON expediting_z_box (order_numbers)");
  56.         $this->addSql("CREATE INDEX expediting_z_container_container_id_idx ON expediting_z_box (container_id)");
  57.         $this->addSql("CREATE INDEX expediting_z_container_repacking_id_idx ON expediting_z_box (repacking_id)");
  58.         $this->addSql("CREATE INDEX expediting_z_box_created_by_idx ON expediting_z_box (created_by)");
  59.         $this->addSql("CREATE INDEX expediting_z_box_updated_by_idx ON expediting_z_box (updated_by)");
  60.     }
  61.     public function down(Schema $schema): void
  62.     {
  63.         $this->addSql("DROP TABLE IF EXISTS expediting_z_box");
  64.     }
  65. }