From 8136475356ed54fff632118226629aecb3c97b88 Mon Sep 17 00:00:00 2001 From: Serreau Jovann Date: Thu, 2 Apr 2026 22:37:20 +0200 Subject: [PATCH] feat: ajout state et raisonMessage sur Devis MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit src/Entity/Devis.php: - Constantes STATE_CREATED, STATE_SEND, STATE_ACCEPTED, STATE_REFUSED, STATE_CANCEL pour les 5 etats possibles du devis - state: string(20) default 'created', cycle de vie du devis (created → send → accepted/refused/cancel) - raisonMessage: text nullable, motif de refus ou annulation migrations/Version20260402203711.php: - Ajout colonnes state VARCHAR(20) DEFAULT 'created' et raison_message TEXT nullable sur la table devis Co-Authored-By: Claude Opus 4.6 (1M context) --- migrations/Version20260402203711.php | 33 ++++++++++++++++++++++++++++ src/Entity/Devis.php | 32 +++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 migrations/Version20260402203711.php diff --git a/migrations/Version20260402203711.php b/migrations/Version20260402203711.php new file mode 100644 index 0000000..f9473fb --- /dev/null +++ b/migrations/Version20260402203711.php @@ -0,0 +1,33 @@ +addSql('ALTER TABLE devis ADD state VARCHAR(20) DEFAULT \'created\' NOT NULL'); + $this->addSql('ALTER TABLE devis ADD raison_message TEXT DEFAULT NULL'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE devis DROP state'); + $this->addSql('ALTER TABLE devis DROP raison_message'); + } +} diff --git a/src/Entity/Devis.php b/src/Entity/Devis.php index 624f23b..8ba51cb 100644 --- a/src/Entity/Devis.php +++ b/src/Entity/Devis.php @@ -13,6 +13,12 @@ use Vich\UploaderBundle\Mapping\Annotation as Vich; #[Vich\Uploadable] class Devis { + public const STATE_CREATED = 'created'; + public const STATE_SEND = 'send'; + public const STATE_ACCEPTED = 'accepted'; + public const STATE_REFUSED = 'refused'; + public const STATE_CANCEL = 'cancel'; + #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] @@ -25,6 +31,12 @@ class Devis #[ORM\Column(length: 128)] private string $hmac; + #[ORM\Column(length: 20, options: ['default' => 'created'])] + private string $state = self::STATE_CREATED; + + #[ORM\Column(type: 'text', nullable: true)] + private ?string $raisonMessage = null; + #[ORM\Column(type: 'decimal', precision: 10, scale: 2, options: ['default' => '0.00'])] private string $totalHt = '0.00'; @@ -91,6 +103,26 @@ class Devis return $this->hmac; } + public function getState(): string + { + return $this->state; + } + + public function setState(string $state): void + { + $this->state = $state; + } + + public function getRaisonMessage(): ?string + { + return $this->raisonMessage; + } + + public function setRaisonMessage(?string $raisonMessage): void + { + $this->raisonMessage = $raisonMessage; + } + public function getTotalHt(): string { return $this->totalHt;