<?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 Version20251226074522 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 purchase_order (id INT AUTO_INCREMENT NOT NULL, supplier_id INT NOT NULL, warehouse_id INT NOT NULL, po_number VARCHAR(255) NOT NULL, status VARCHAR(50) NOT NULL, order_date DATETIME NOT NULL, expected_date DATETIME DEFAULT NULL, total_amount NUMERIC(15, 2) NOT NULL, note LONGTEXT DEFAULT NULL, created_at DATE DEFAULT NULL COMMENT \'(DC2Type:date_immutable)\', updated_at DATE DEFAULT NULL COMMENT \'(DC2Type:date_immutable)\', created_by VARCHAR(255) DEFAULT NULL, updated_by VARCHAR(255) DEFAULT NULL, u_date INT DEFAULT NULL, UNIQUE INDEX UNIQ_21E210B2EDAE42C5 (po_number), INDEX IDX_21E210B22ADD6D8C (supplier_id), INDEX IDX_21E210B25080ECDE (warehouse_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE purchase_order_user (purchase_order_id INT NOT NULL, user_id INT NOT NULL, INDEX IDX_CC51BB94A45D7E6A (purchase_order_id), INDEX IDX_CC51BB94A76ED395 (user_id), PRIMARY KEY(purchase_order_id, user_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE purchase_order_item (id INT AUTO_INCREMENT NOT NULL, purchase_order_id INT NOT NULL, product_id INT NOT NULL, quantity DOUBLE PRECISION NOT NULL, received_quantity DOUBLE PRECISION NOT NULL, unit_price NUMERIC(15, 2) NOT NULL, total_price NUMERIC(15, 2) NOT NULL, created_at DATE DEFAULT NULL COMMENT \'(DC2Type:date_immutable)\', updated_at DATE DEFAULT NULL COMMENT \'(DC2Type:date_immutable)\', created_by VARCHAR(255) DEFAULT NULL, updated_by VARCHAR(255) DEFAULT NULL, u_date INT DEFAULT NULL, INDEX IDX_5ED948C3A45D7E6A (purchase_order_id), INDEX IDX_5ED948C34584665A (product_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE purchase_order_note (id INT AUTO_INCREMENT NOT NULL, purchase_order_id INT NOT NULL, creator_id INT DEFAULT NULL, content LONGTEXT NOT NULL, image VARCHAR(255) DEFAULT NULL, is_system_log TINYINT(1) NOT NULL, created_at DATE DEFAULT NULL COMMENT \'(DC2Type:date_immutable)\', updated_at DATE DEFAULT NULL COMMENT \'(DC2Type:date_immutable)\', created_by VARCHAR(255) DEFAULT NULL, updated_by VARCHAR(255) DEFAULT NULL, u_date INT DEFAULT NULL, INDEX IDX_8E7F97C9A45D7E6A (purchase_order_id), INDEX IDX_8E7F97C961220EA6 (creator_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE purchase_order ADD CONSTRAINT FK_21E210B22ADD6D8C FOREIGN KEY (supplier_id) REFERENCES supplier (id)');
$this->addSql('ALTER TABLE purchase_order ADD CONSTRAINT FK_21E210B25080ECDE FOREIGN KEY (warehouse_id) REFERENCES warehouse (id)');
$this->addSql('ALTER TABLE purchase_order_user ADD CONSTRAINT FK_CC51BB94A45D7E6A FOREIGN KEY (purchase_order_id) REFERENCES purchase_order (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE purchase_order_user ADD CONSTRAINT FK_CC51BB94A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE purchase_order_item ADD CONSTRAINT FK_5ED948C3A45D7E6A FOREIGN KEY (purchase_order_id) REFERENCES purchase_order (id)');
$this->addSql('ALTER TABLE purchase_order_item ADD CONSTRAINT FK_5ED948C34584665A FOREIGN KEY (product_id) REFERENCES product (id)');
$this->addSql('ALTER TABLE purchase_order_note ADD CONSTRAINT FK_8E7F97C9A45D7E6A FOREIGN KEY (purchase_order_id) REFERENCES purchase_order (id)');
$this->addSql('ALTER TABLE purchase_order_note ADD CONSTRAINT FK_8E7F97C961220EA6 FOREIGN KEY (creator_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 purchase_order DROP FOREIGN KEY FK_21E210B22ADD6D8C');
$this->addSql('ALTER TABLE purchase_order DROP FOREIGN KEY FK_21E210B25080ECDE');
$this->addSql('ALTER TABLE purchase_order_user DROP FOREIGN KEY FK_CC51BB94A45D7E6A');
$this->addSql('ALTER TABLE purchase_order_user DROP FOREIGN KEY FK_CC51BB94A76ED395');
$this->addSql('ALTER TABLE purchase_order_item DROP FOREIGN KEY FK_5ED948C3A45D7E6A');
$this->addSql('ALTER TABLE purchase_order_item DROP FOREIGN KEY FK_5ED948C34584665A');
$this->addSql('ALTER TABLE purchase_order_note DROP FOREIGN KEY FK_8E7F97C9A45D7E6A');
$this->addSql('ALTER TABLE purchase_order_note DROP FOREIGN KEY FK_8E7F97C961220EA6');
$this->addSql('DROP TABLE purchase_order');
$this->addSql('DROP TABLE purchase_order_user');
$this->addSql('DROP TABLE purchase_order_item');
$this->addSql('DROP TABLE purchase_order_note');
}
}