migrations/Delete/Version20250901151243_QualityNCR.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 App\Doctrine\Type\Expediting\NonConformityStatus;
  7. use App\Doctrine\Type\Expediting\NonConformitySubject;
  8. use App\Doctrine\Type\Expediting\NonConformityType;
  9. use Doctrine\DBAL\Schema\Schema;
  10. use Doctrine\Migrations\AbstractMigration;
  11. /**
  12.  * Auto-generated Migration: Please modify to your needs!
  13.  */
  14. final class Version20250901151243_QualityNCR extends AbstractMigration
  15. {
  16.     public function getDescription(): string
  17.     {
  18.         return 'Add ops ncr';
  19.     }
  20.     public function up(Schema $schema): void
  21.     {
  22.         $this->addSql(NonConformitySubject::getRegistrationSQL());
  23.         $this->addSql(NonConformityType::getRegistrationSQL());
  24.         $this->addSql(NonConformityStatus::getRegistrationSQL());
  25.         $casingTypeType CasingType::getName();
  26.         $casingMaterialType CasingMaterial::getName();
  27.         $nonConformitySubject NonConformitySubject::getName();
  28.         $nonConformityType NonConformityType::getName();
  29.         $nonConformityStatus NonConformityStatus::getName();
  30.         $this->addSql("CREATE TABLE non_conformity (
  31.             id                              SERIAL PRIMARY KEY,
  32.             ncr_id                          INTEGER                              REFERENCES public.non_conformity (id),
  33.             
  34.             slug                            CHARACTER VARYING           NOT NULL,
  35.             reference                       CHARACTER VARYING           NOT NULL,
  36.             subject_reference               CHARACTER VARYING,
  37.             invoices_numbers                CHARACTER VARYING,
  38.             orders_numbers                  CHARACTER VARYING,
  39.             line_items                      CHARACTER VARYING,
  40.             description                     CHARACTER VARYING,
  41.             supplier                        CHARACTER VARYING,
  42.             
  43.             casing_type                     {$casingTypeType},
  44.             casing_material                 {$casingMaterialType},
  45.             length                          DECIMAL(18, 3),
  46.             width                           DECIMAL(18, 3),
  47.             height                          DECIMAL(18, 3),
  48.             weight                          DECIMAL(18, 3),
  49.             subject_type                    {$nonConformitySubject}     NOT NULL,
  50.             type                            {$nonConformityType}        NOT NULL,
  51.             status                          {$nonConformityStatus}      NOT NULL,
  52.             
  53.             created_by                      INTEGER                              REFERENCES public.user (id),
  54.             updated_by                      INTEGER                              REFERENCES public.user (id),
  55.             created_at                      TIMESTAMP(0) WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
  56.             updated_at                      TIMESTAMP(0) WITH TIME ZONE,
  57.             deleted_at                      TIMESTAMP(0) WITH TIME ZONE
  58.         )");
  59.         $this->addSql("CREATE INDEX non_conformity_ncr_id_idx ON non_conformity (ncr_id)");
  60.         $this->addSql("CREATE INDEX non_conformity_created_by_idx ON non_conformity (created_by)");
  61.         $this->addSql("CREATE INDEX non_conformity_updated_by_idx ON non_conformity (updated_by)");
  62.     }
  63.     public function down(Schema $schema): void
  64.     {
  65.         $this->addSql("DROP TABLE IF EXISTS non_conformity");
  66.         $this->addSql(NonConformityStatus::getDeletionSQL());
  67.         $this->addSql(NonConformityType::getDeletionSQL());
  68.         $this->addSql(NonConformitySubject::getDeletionSQL());
  69.     }
  70. }