From 8ec98a593ac5d28da8d3886ec4e3c750d240f644 Mon Sep 17 00:00:00 2001 From: matthieu Date: Sun, 15 Mar 2026 18:04:14 +0100 Subject: [PATCH] feat : add task_document migration Co-Authored-By: Claude Opus 4.6 (1M context) --- migrations/Version20260315170358.php | 39 ++++++++++++++++++++++ src/EventListener/TaskDocumentListener.php | 7 ++++ src/State/TaskDocumentProcessor.php | 16 +++++++++ 3 files changed, 62 insertions(+) create mode 100644 migrations/Version20260315170358.php create mode 100644 src/EventListener/TaskDocumentListener.php create mode 100644 src/State/TaskDocumentProcessor.php diff --git a/migrations/Version20260315170358.php b/migrations/Version20260315170358.php new file mode 100644 index 0000000..5f86219 --- /dev/null +++ b/migrations/Version20260315170358.php @@ -0,0 +1,39 @@ +addSql('CREATE TABLE task_document (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, original_name VARCHAR(255) NOT NULL, file_name VARCHAR(255) NOT NULL, mime_type VARCHAR(100) NOT NULL, size INT NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, task_id INT NOT NULL, uploaded_by_id INT DEFAULT NULL, PRIMARY KEY (id))'); + $this->addSql('CREATE INDEX IDX_98A9603A8DB60186 ON task_document (task_id)'); + $this->addSql('CREATE INDEX IDX_98A9603AA2B28FE8 ON task_document (uploaded_by_id)'); + $this->addSql('ALTER TABLE task_document ADD CONSTRAINT FK_98A9603A8DB60186 FOREIGN KEY (task_id) REFERENCES task (id) ON DELETE CASCADE NOT DEFERRABLE'); + $this->addSql('ALTER TABLE task_document ADD CONSTRAINT FK_98A9603AA2B28FE8 FOREIGN KEY (uploaded_by_id) REFERENCES "user" (id) ON DELETE SET NULL NOT DEFERRABLE'); + $this->addSql('ALTER TABLE project ALTER archived DROP DEFAULT'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE task_document DROP CONSTRAINT FK_98A9603A8DB60186'); + $this->addSql('ALTER TABLE task_document DROP CONSTRAINT FK_98A9603AA2B28FE8'); + $this->addSql('DROP TABLE task_document'); + $this->addSql('ALTER TABLE project ALTER archived SET DEFAULT false'); + } +} diff --git a/src/EventListener/TaskDocumentListener.php b/src/EventListener/TaskDocumentListener.php new file mode 100644 index 0000000..87ff2fa --- /dev/null +++ b/src/EventListener/TaskDocumentListener.php @@ -0,0 +1,7 @@ +