[#203] Réceptions — Parcours de pesée multi-étapes (première partie) (!3)

| Numéro du ticket | Titre du ticket |
|------------------|-----------------|
|        #203          |      Réceptions — Parcours de pesée multi-étapes         |

## Description de la PR
[#203] Réceptions — Parcours de pesée multi-étapes

## Modification du .env

## Check list

- [x] Pas de régression
- [x] TU/TI/TF rédigée
- [x] TU/TI/TF OK
- [x] CHANGELOG modifié

Reviewed-on: #3
Reviewed-by: THOLOT DECHENE Matthieu <matthieu@yuno.malio.fr>
Co-authored-by: AUTIN Tristan <tristan@yuno.malio.fr>
Co-committed-by: AUTIN Tristan <tristan@yuno.malio.fr>
This commit was merged in pull request #3.
This commit is contained in:
2026-01-14 07:17:34 +00:00
committed by Autin
parent 9fb0fc12b8
commit 4a77449a41
44 changed files with 1976 additions and 73 deletions

View File

@@ -0,0 +1,26 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260112000100 extends AbstractMigration
{
public function getDescription(): string
{
return 'Create reception table';
}
public function up(Schema $schema): void
{
$this->addSql('CREATE TABLE reception (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, dsd INT DEFAULT NULL, weight DOUBLE PRECISION DEFAULT NULL, weighed_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, PRIMARY KEY(id))');
}
public function down(Schema $schema): void
{
$this->addSql('DROP TABLE reception');
}
}

View File

@@ -0,0 +1,29 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260112000200 extends AbstractMigration
{
public function getDescription(): string
{
return 'Create weight table and link to reception';
}
public function up(Schema $schema): void
{
$this->addSql('CREATE TABLE weight (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, reception_id INT NOT NULL, gross_weight INT DEFAULT NULL, tare_weight INT DEFAULT NULL, gross_weighed_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, tare_weighed_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_7B4E3B2304A72F3F ON weight (reception_id)');
$this->addSql('ALTER TABLE weight ADD CONSTRAINT FK_7B4E3B2304A72F3F FOREIGN KEY (reception_id) REFERENCES reception (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
}
public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE weight DROP CONSTRAINT FK_7B4E3B2304A72F3F');
$this->addSql('DROP TABLE weight');
}
}

View File

@@ -0,0 +1,26 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260112000300 extends AbstractMigration
{
public function getDescription(): string
{
return 'Rename weighed_at to date_reception in reception table';
}
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE reception RENAME COLUMN weighed_at TO date_reception');
}
public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE reception RENAME COLUMN date_reception TO weighed_at');
}
}

View File

@@ -0,0 +1,30 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260112000400 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add license plate, current step, and validity fields to reception';
}
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE reception ADD license_plate VARCHAR(20) DEFAULT NULL');
$this->addSql('ALTER TABLE reception ADD current_step INT DEFAULT 0 NOT NULL');
$this->addSql('ALTER TABLE reception ADD is_valid BOOLEAN DEFAULT FALSE NOT NULL');
}
public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE reception DROP license_plate');
$this->addSql('ALTER TABLE reception DROP current_step');
$this->addSql('ALTER TABLE reception DROP is_valid');
}
}

View File

@@ -0,0 +1,28 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260112000500 extends AbstractMigration
{
public function getDescription(): string
{
return 'Remove dsd and weight columns from reception';
}
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE reception DROP dsd');
$this->addSql('ALTER TABLE reception DROP weight');
}
public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE reception ADD dsd INT DEFAULT NULL');
$this->addSql('ALTER TABLE reception ADD weight DOUBLE PRECISION DEFAULT NULL');
}
}

View File

@@ -0,0 +1,42 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260112000600 extends AbstractMigration
{
public function getDescription(): string
{
return 'Update weight table to store single weighings with type';
}
public function up(Schema $schema): void
{
$this->addSql('DROP INDEX UNIQ_7B4E3B2304A72F3F');
$this->addSql('ALTER TABLE weight DROP gross_weight');
$this->addSql('ALTER TABLE weight DROP tare_weight');
$this->addSql('ALTER TABLE weight DROP gross_weighed_at');
$this->addSql('ALTER TABLE weight DROP tare_weighed_at');
$this->addSql('ALTER TABLE weight ADD dsd INT DEFAULT NULL');
$this->addSql('ALTER TABLE weight ADD weight INT DEFAULT NULL');
$this->addSql('ALTER TABLE weight ADD weighed_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
$this->addSql('ALTER TABLE weight ADD type VARCHAR(10) DEFAULT \'gross\' NOT NULL');
}
public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE weight DROP dsd');
$this->addSql('ALTER TABLE weight DROP weight');
$this->addSql('ALTER TABLE weight DROP weighed_at');
$this->addSql('ALTER TABLE weight DROP type');
$this->addSql('ALTER TABLE weight ADD gross_weight INT DEFAULT NULL');
$this->addSql('ALTER TABLE weight ADD tare_weight INT DEFAULT NULL');
$this->addSql('ALTER TABLE weight ADD gross_weighed_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
$this->addSql('ALTER TABLE weight ADD tare_weighed_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
$this->addSql('CREATE UNIQUE INDEX UNIQ_7B4E3B2304A72F3F ON weight (reception_id)');
}
}