<?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 Version20221227084724 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 warehouse (id INT AUTO_INCREMENT NOT NULL, code VARCHAR(64) DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, description LONGTEXT DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE warehouse_admission (id INT AUTO_INCREMENT NOT NULL, warehouse_id INT NOT NULL, item_id INT NOT NULL, admissed_by_id INT DEFAULT NULL, quantity NUMERIC(10, 2) NOT NULL, batch_number VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL, admission_date DATETIME NOT NULL, expiration_date DATE DEFAULT NULL, INDEX IDX_CB2E4CF55080ECDE (warehouse_id), INDEX IDX_CB2E4CF5126F525E (item_id), INDEX IDX_CB2E4CF531F80892 (admissed_by_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE warehouse_item (id INT AUTO_INCREMENT NOT NULL, warehouse_id INT NOT NULL, ingredient_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, code VARCHAR(255) DEFAULT NULL, ean VARCHAR(255) DEFAULT NULL, last_admission DATETIME DEFAULT NULL, last_release DATETIME DEFAULT NULL, type VARCHAR(32) NOT NULL, quantity NUMERIC(10, 2) DEFAULT NULL, INDEX IDX_C07125CA5080ECDE (warehouse_id), INDEX IDX_C07125CA933FE08C (ingredient_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE warehouse_release (id INT AUTO_INCREMENT NOT NULL, warehouse_id INT NOT NULL, item_id INT NOT NULL, released_by_id INT DEFAULT NULL, quantity NUMERIC(10, 2) NOT NULL, batch_number VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL, release_date DATETIME NOT NULL, expiration_date DATETIME DEFAULT NULL, INDEX IDX_B9A016685080ECDE (warehouse_id), INDEX IDX_B9A01668126F525E (item_id), INDEX IDX_B9A01668445947DD (released_by_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE warehouse_admission ADD CONSTRAINT FK_CB2E4CF55080ECDE FOREIGN KEY (warehouse_id) REFERENCES warehouse (id)');
$this->addSql('ALTER TABLE warehouse_admission ADD CONSTRAINT FK_CB2E4CF5126F525E FOREIGN KEY (item_id) REFERENCES warehouse_item (id)');
$this->addSql('ALTER TABLE warehouse_admission ADD CONSTRAINT FK_CB2E4CF531F80892 FOREIGN KEY (admissed_by_id) REFERENCES `user` (id)');
$this->addSql('ALTER TABLE warehouse_item ADD CONSTRAINT FK_C07125CA5080ECDE FOREIGN KEY (warehouse_id) REFERENCES warehouse (id)');
$this->addSql('ALTER TABLE warehouse_item ADD CONSTRAINT FK_C07125CA933FE08C FOREIGN KEY (ingredient_id) REFERENCES ingredient (id)');
$this->addSql('ALTER TABLE warehouse_release ADD CONSTRAINT FK_B9A016685080ECDE FOREIGN KEY (warehouse_id) REFERENCES warehouse (id)');
$this->addSql('ALTER TABLE warehouse_release ADD CONSTRAINT FK_B9A01668126F525E FOREIGN KEY (item_id) REFERENCES warehouse_item (id)');
$this->addSql('ALTER TABLE warehouse_release ADD CONSTRAINT FK_B9A01668445947DD FOREIGN KEY (released_by_id) REFERENCES `user` (id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE warehouse_admission DROP FOREIGN KEY FK_CB2E4CF55080ECDE');
$this->addSql('ALTER TABLE warehouse_item DROP FOREIGN KEY FK_C07125CA5080ECDE');
$this->addSql('ALTER TABLE warehouse_release DROP FOREIGN KEY FK_B9A016685080ECDE');
$this->addSql('ALTER TABLE warehouse_admission DROP FOREIGN KEY FK_CB2E4CF5126F525E');
$this->addSql('ALTER TABLE warehouse_release DROP FOREIGN KEY FK_B9A01668126F525E');
$this->addSql('DROP TABLE warehouse');
$this->addSql('DROP TABLE warehouse_admission');
$this->addSql('DROP TABLE warehouse_item');
$this->addSql('DROP TABLE warehouse_release');
}
}