39 lines
3.6 KiB
PHP
39 lines
3.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace DoctrineMigrations;
|
|
|
|
use Doctrine\DBAL\Schema\Schema;
|
|
use Doctrine\Migrations\AbstractMigration;
|
|
|
|
final class Version20260221101500 extends AbstractMigration
|
|
{
|
|
public function getDescription(): string
|
|
{
|
|
return 'Add digital teamer invoice draft entities';
|
|
}
|
|
|
|
public function up(Schema $schema): void
|
|
{
|
|
$this->addSql('CREATE TABLE disposition_invoice (id INT AUTO_INCREMENT NOT NULL, disposition_id INT NOT NULL, submitted_by_id INT DEFAULT NULL, generated_upload_id INT DEFAULT NULL, uuid VARCHAR(36) NOT NULL, status VARCHAR(32) NOT NULL, currency VARCHAR(3) NOT NULL, total_cents INT NOT NULL, submitted_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', rejected_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', rejection_comment LONGTEXT DEFAULT NULL, locked_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', created_by VARCHAR(255) DEFAULT NULL, updated_by VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', UNIQUE INDEX UNIQ_58F5D73FD17F50A6 (uuid), UNIQUE INDEX UNIQ_58F5D73FE743E1FB (disposition_id), UNIQUE INDEX UNIQ_58F5D73FF08B5E1A (generated_upload_id), INDEX IDX_58F5D73F8DB32B4A (submitted_by_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
|
|
$this->addSql('CREATE TABLE disposition_invoice_item (id INT AUTO_INCREMENT NOT NULL, invoice_id INT NOT NULL, fee_id INT DEFAULT NULL, position INT NOT NULL, source_type VARCHAR(16) NOT NULL, label_snapshot VARCHAR(255) NOT NULL, unit_price_cents_snapshot INT NOT NULL, quantity INT NOT NULL, line_total_cents INT NOT NULL, created_by VARCHAR(255) DEFAULT NULL, updated_by VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_77182CD42989F1FD (invoice_id), INDEX IDX_77182CD4AB45AECA (fee_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
|
|
$this->addSql('ALTER TABLE disposition_invoice ADD CONSTRAINT FK_58F5D73FE743E1FB FOREIGN KEY (disposition_id) REFERENCES disposition (id) ON DELETE CASCADE');
|
|
$this->addSql('ALTER TABLE disposition_invoice ADD CONSTRAINT FK_58F5D73F8DB32B4A FOREIGN KEY (submitted_by_id) REFERENCES user (id)');
|
|
$this->addSql('ALTER TABLE disposition_invoice ADD CONSTRAINT FK_58F5D73FF08B5E1A FOREIGN KEY (generated_upload_id) REFERENCES upload (id) ON DELETE SET NULL');
|
|
$this->addSql('ALTER TABLE disposition_invoice_item ADD CONSTRAINT FK_77182CD42989F1FD FOREIGN KEY (invoice_id) REFERENCES disposition_invoice (id) ON DELETE CASCADE');
|
|
$this->addSql('ALTER TABLE disposition_invoice_item ADD CONSTRAINT FK_77182CD4AB45AECA FOREIGN KEY (fee_id) REFERENCES fee (id)');
|
|
}
|
|
|
|
public function down(Schema $schema): void
|
|
{
|
|
$this->addSql('ALTER TABLE disposition_invoice_item DROP FOREIGN KEY FK_77182CD42989F1FD');
|
|
$this->addSql('ALTER TABLE disposition_invoice_item DROP FOREIGN KEY FK_77182CD4AB45AECA');
|
|
$this->addSql('ALTER TABLE disposition_invoice DROP FOREIGN KEY FK_58F5D73FE743E1FB');
|
|
$this->addSql('ALTER TABLE disposition_invoice DROP FOREIGN KEY FK_58F5D73F8DB32B4A');
|
|
$this->addSql('ALTER TABLE disposition_invoice DROP FOREIGN KEY FK_58F5D73FF08B5E1A');
|
|
$this->addSql('DROP TABLE disposition_invoice_item');
|
|
$this->addSql('DROP TABLE disposition_invoice');
|
|
}
|
|
}
|