<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20220824092951 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE invoice (id INT AUTO_INCREMENT NOT NULL, admin_id INT NOT NULL, client_id INT NOT NULL, status_id INT NOT NULL, is_read_only TINYINT(1) NOT NULL, date_created DATE NOT NULL, time_created TIME NOT NULL, date_modified DATETIME NOT NULL, date_due DATE NOT NULL, number VARCHAR(100) DEFAULT NULL, discount_amount NUMERIC(20, 2) DEFAULT NULL, discount_percent NUMERIC(20, 2) DEFAULT NULL, INDEX IDX_90651744642B8210 (admin_id), INDEX IDX_9065174419EB6921 (client_id), INDEX IDX_906517446BF700BD (status_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE invoice_amount (id INT AUTO_INCREMENT NOT NULL, invoice_id INT NOT NULL, item_subtotal NUMERIC(20, 2) DEFAULT NULL, item_tax_total NUMERIC(20, 2) DEFAULT NULL, tax_total NUMERIC(20, 2) DEFAULT NULL, total NUMERIC(20, 2) DEFAULT NULL, paid NUMERIC(20, 2) DEFAULT NULL, balance NUMERIC(20, 2) DEFAULT NULL, INDEX IDX_3597ED112989F1FD (invoice_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE invoice_item (id INT AUTO_INCREMENT NOT NULL, invoice_id INT NOT NULL, unit_id INT DEFAULT NULL, date_added DATE NOT NULL, name LONGTEXT DEFAULT NULL, description LONGTEXT DEFAULT NULL, quantity NUMERIC(10, 2) NOT NULL, price NUMERIC(20, 2) NOT NULL, discount_amount NUMERIC(20, 2) NOT NULL, pos INT NOT NULL, INDEX IDX_1DDE477B2989F1FD (invoice_id), INDEX IDX_1DDE477BF8BD700D (unit_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE invoice_item_amount (id INT AUTO_INCREMENT NOT NULL, item_id INT NOT NULL, subtotal NUMERIC(20, 2) DEFAULT NULL, tax_total NUMERIC(20, 2) DEFAULT NULL, discount NUMERIC(20, 2) DEFAULT NULL, total NUMERIC(20, 2) DEFAULT NULL, UNIQUE INDEX UNIQ_1F1667BE126F525E (item_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE invoice_status (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE payment (id INT AUTO_INCREMENT NOT NULL, invoice_id INT NOT NULL, methode_id INT DEFAULT NULL, date DATE NOT NULL, amount NUMERIC(20, 2) NOT NULL, note LONGTEXT DEFAULT NULL, INDEX IDX_6D28840D2989F1FD (invoice_id), INDEX IDX_6D28840D41CCC9A4 (methode_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE payment_methods (id INT AUTO_INCREMENT NOT NULL, name LONGTEXT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE quote (id INT AUTO_INCREMENT NOT NULL, invoice_id INT DEFAULT NULL, admin_id INT NOT NULL, client_id INT NOT NULL, status_id INT NOT NULL, date_created DATE NOT NULL, date_modified DATETIME NOT NULL, expires DATE NOT NULL, number VARCHAR(100) NOT NULL, discount_amount NUMERIC(20, 2) DEFAULT NULL, discount_percent NUMERIC(20, 2) DEFAULT NULL, notes LONGTEXT DEFAULT NULL, UNIQUE INDEX UNIQ_6B71CBF42989F1FD (invoice_id), INDEX IDX_6B71CBF4642B8210 (admin_id), INDEX IDX_6B71CBF419EB6921 (client_id), INDEX IDX_6B71CBF46BF700BD (status_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE quote_amount (id INT AUTO_INCREMENT NOT NULL, quote_id INT NOT NULL, item_subtotal NUMERIC(20, 2) DEFAULT NULL, item_tax_total NUMERIC(20, 2) DEFAULT NULL, tax_total NUMERIC(20, 2) DEFAULT NULL, total NUMERIC(20, 2) DEFAULT NULL, UNIQUE INDEX UNIQ_B419DE01DB805178 (quote_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE quote_item (id INT AUTO_INCREMENT NOT NULL, quote_id INT NOT NULL, unit_id INT DEFAULT NULL, date_added DATE NOT NULL, name LONGTEXT DEFAULT NULL, description LONGTEXT DEFAULT NULL, quantity NUMERIC(20, 2) DEFAULT NULL, price NUMERIC(20, 2) DEFAULT NULL, discount_amount NUMERIC(20, 2) DEFAULT NULL, pos INT NOT NULL, INDEX IDX_8DFC7A94DB805178 (quote_id), INDEX IDX_8DFC7A94F8BD700D (unit_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE quote_item_amount (id INT AUTO_INCREMENT NOT NULL, item_id INT NOT NULL, subtotal NUMERIC(20, 2) DEFAULT NULL, tax_total NUMERIC(20, 2) DEFAULT NULL, discount NUMERIC(20, 2) DEFAULT NULL, total NUMERIC(20, 2) DEFAULT NULL, UNIQUE INDEX UNIQ_545B38F3126F525E (item_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE quote_status (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE unit (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(50) NOT NULL, name_plrl VARCHAR(50) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE invoice ADD CONSTRAINT FK_90651744642B8210 FOREIGN KEY (admin_id) REFERENCES admin (id)');
$this->addSql('ALTER TABLE invoice ADD CONSTRAINT FK_9065174419EB6921 FOREIGN KEY (client_id) REFERENCES client (id)');
$this->addSql('ALTER TABLE invoice ADD CONSTRAINT FK_906517446BF700BD FOREIGN KEY (status_id) REFERENCES invoice_status (id)');
$this->addSql('ALTER TABLE invoice_amount ADD CONSTRAINT FK_3597ED112989F1FD FOREIGN KEY (invoice_id) REFERENCES invoice (id)');
$this->addSql('ALTER TABLE invoice_item ADD CONSTRAINT FK_1DDE477B2989F1FD FOREIGN KEY (invoice_id) REFERENCES invoice (id)');
$this->addSql('ALTER TABLE invoice_item ADD CONSTRAINT FK_1DDE477BF8BD700D FOREIGN KEY (unit_id) REFERENCES unit (id)');
$this->addSql('ALTER TABLE invoice_item_amount ADD CONSTRAINT FK_1F1667BE126F525E FOREIGN KEY (item_id) REFERENCES invoice_item (id)');
$this->addSql('ALTER TABLE payment ADD CONSTRAINT FK_6D28840D2989F1FD FOREIGN KEY (invoice_id) REFERENCES invoice (id)');
$this->addSql('ALTER TABLE payment ADD CONSTRAINT FK_6D28840D41CCC9A4 FOREIGN KEY (methode_id) REFERENCES payment_methods (id)');
$this->addSql('ALTER TABLE quote ADD CONSTRAINT FK_6B71CBF42989F1FD FOREIGN KEY (invoice_id) REFERENCES invoice (id)');
$this->addSql('ALTER TABLE quote ADD CONSTRAINT FK_6B71CBF4642B8210 FOREIGN KEY (admin_id) REFERENCES admin (id)');
$this->addSql('ALTER TABLE quote ADD CONSTRAINT FK_6B71CBF419EB6921 FOREIGN KEY (client_id) REFERENCES client (id)');
$this->addSql('ALTER TABLE quote ADD CONSTRAINT FK_6B71CBF46BF700BD FOREIGN KEY (status_id) REFERENCES quote_status (id)');
$this->addSql('ALTER TABLE quote_amount ADD CONSTRAINT FK_B419DE01DB805178 FOREIGN KEY (quote_id) REFERENCES quote (id)');
$this->addSql('ALTER TABLE quote_item ADD CONSTRAINT FK_8DFC7A94DB805178 FOREIGN KEY (quote_id) REFERENCES quote (id)');
$this->addSql('ALTER TABLE quote_item ADD CONSTRAINT FK_8DFC7A94F8BD700D FOREIGN KEY (unit_id) REFERENCES unit (id)');
$this->addSql('ALTER TABLE quote_item_amount ADD CONSTRAINT FK_545B38F3126F525E FOREIGN KEY (item_id) REFERENCES quote_item (id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE invoice_amount DROP FOREIGN KEY FK_3597ED112989F1FD');
$this->addSql('ALTER TABLE invoice_item DROP FOREIGN KEY FK_1DDE477B2989F1FD');
$this->addSql('ALTER TABLE payment DROP FOREIGN KEY FK_6D28840D2989F1FD');
$this->addSql('ALTER TABLE quote DROP FOREIGN KEY FK_6B71CBF42989F1FD');
$this->addSql('ALTER TABLE invoice_item_amount DROP FOREIGN KEY FK_1F1667BE126F525E');
$this->addSql('ALTER TABLE invoice DROP FOREIGN KEY FK_906517446BF700BD');
$this->addSql('ALTER TABLE payment DROP FOREIGN KEY FK_6D28840D41CCC9A4');
$this->addSql('ALTER TABLE quote_amount DROP FOREIGN KEY FK_B419DE01DB805178');
$this->addSql('ALTER TABLE quote_item DROP FOREIGN KEY FK_8DFC7A94DB805178');
$this->addSql('ALTER TABLE quote_item_amount DROP FOREIGN KEY FK_545B38F3126F525E');
$this->addSql('ALTER TABLE quote DROP FOREIGN KEY FK_6B71CBF46BF700BD');
$this->addSql('ALTER TABLE invoice_item DROP FOREIGN KEY FK_1DDE477BF8BD700D');
$this->addSql('ALTER TABLE quote_item DROP FOREIGN KEY FK_8DFC7A94F8BD700D');
$this->addSql('DROP TABLE invoice');
$this->addSql('DROP TABLE invoice_amount');
$this->addSql('DROP TABLE invoice_item');
$this->addSql('DROP TABLE invoice_item_amount');
$this->addSql('DROP TABLE invoice_status');
$this->addSql('DROP TABLE payment');
$this->addSql('DROP TABLE payment_methods');
$this->addSql('DROP TABLE quote');
$this->addSql('DROP TABLE quote_amount');
$this->addSql('DROP TABLE quote_item');
$this->addSql('DROP TABLE quote_item_amount');
$this->addSql('DROP TABLE quote_status');
$this->addSql('DROP TABLE unit');
}
}