migrations/2026/06/Version20260602102948.php line 1

  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * Auto-generated Migration: Please modify to your needs!
  8.  */
  9. final class Version20260602102948 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return 'Create invoice_repeat_rule_occurrence table (repeating-invoices generation log) with unique (repeat_rule_id, occurrence_date). Additive only.';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         $this->addSql('CREATE TABLE invoice_repeat_rule_occurrence (id BINARY(16) NOT NULL COMMENT \'(DC2Type:invoice_repeat_rule_occurrence_id)\', repeat_rule_id BINARY(16) NOT NULL COMMENT \'(DC2Type:invoice_repeat_rule_id)\', created_draft_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:invoice_draft_id)\', occurrence_date DATE NOT NULL COMMENT \'(DC2Type:date_immutable)\', created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_162C0FFC3AE11C3E (repeat_rule_id), INDEX IDX_162C0FFC7D0A4B66 (created_draft_id), UNIQUE INDEX uq_invoice_repeat_rule_occurrence (repeat_rule_id, occurrence_date), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  18.         $this->addSql('ALTER TABLE invoice_repeat_rule_occurrence ADD CONSTRAINT FK_162C0FFC3AE11C3E FOREIGN KEY (repeat_rule_id) REFERENCES invoice_repeat_rule (id)');
  19.         $this->addSql('ALTER TABLE invoice_repeat_rule_occurrence ADD CONSTRAINT FK_162C0FFC7D0A4B66 FOREIGN KEY (created_draft_id) REFERENCES invoice_draft (id)');
  20.     }
  21.     public function down(Schema $schema): void
  22.     {
  23.         $this->addSql('ALTER TABLE invoice_repeat_rule_occurrence DROP FOREIGN KEY FK_162C0FFC3AE11C3E');
  24.         $this->addSql('ALTER TABLE invoice_repeat_rule_occurrence DROP FOREIGN KEY FK_162C0FFC7D0A4B66');
  25.         $this->addSql('DROP TABLE invoice_repeat_rule_occurrence');
  26.     }
  27. }