<?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 Version20251205105050 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 gift_certificate (id INT AUTO_INCREMENT NOT NULL, origin_sale_id INT DEFAULT NULL, customer_id INT DEFAULT NULL, code VARCHAR(255) NOT NULL, initial_amount NUMERIC(10, 2) NOT NULL, balance NUMERIC(10, 2) NOT NULL, description LONGTEXT DEFAULT NULL, is_active TINYINT(1) NOT NULL, expires_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', 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_16E9107D77153098 (code), INDEX IDX_16E9107DFF095D05 (origin_sale_id), INDEX IDX_16E9107D9395C3F3 (customer_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE gift_certificate_transaction (id INT AUTO_INCREMENT NOT NULL, gift_certificate_id INT NOT NULL, sale_id INT NOT NULL, amount_used NUMERIC(10, 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_2CB4EEBEA97C76A8 (gift_certificate_id), INDEX IDX_2CB4EEBE4A7E4868 (sale_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE gift_voucher (id INT AUTO_INCREMENT NOT NULL, customer_id INT DEFAULT NULL, code VARCHAR(255) NOT NULL, initial_amount NUMERIC(10, 2) NOT NULL, balance NUMERIC(10, 2) NOT NULL, expiry_date DATE NOT NULL, status VARCHAR(50) 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, UNIQUE INDEX UNIQ_7FC8967777153098 (code), INDEX IDX_7FC896779395C3F3 (customer_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE gift_voucher_usage (id INT AUTO_INCREMENT NOT NULL, voucher_id INT NOT NULL, sale_id INT NOT NULL, payment_id INT NOT NULL, amount_used NUMERIC(10, 2) NOT NULL, used_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', 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_FEE6B4A128AA1B6F (voucher_id), INDEX IDX_FEE6B4A14A7E4868 (sale_id), UNIQUE INDEX UNIQ_FEE6B4A14C3A3BB (payment_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE gift_certificate ADD CONSTRAINT FK_16E9107DFF095D05 FOREIGN KEY (origin_sale_id) REFERENCES sales (id)');
$this->addSql('ALTER TABLE gift_certificate ADD CONSTRAINT FK_16E9107D9395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id)');
$this->addSql('ALTER TABLE gift_certificate_transaction ADD CONSTRAINT FK_2CB4EEBEA97C76A8 FOREIGN KEY (gift_certificate_id) REFERENCES gift_certificate (id)');
$this->addSql('ALTER TABLE gift_certificate_transaction ADD CONSTRAINT FK_2CB4EEBE4A7E4868 FOREIGN KEY (sale_id) REFERENCES sales (id)');
$this->addSql('ALTER TABLE gift_voucher ADD CONSTRAINT FK_7FC896779395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id)');
$this->addSql('ALTER TABLE gift_voucher_usage ADD CONSTRAINT FK_FEE6B4A128AA1B6F FOREIGN KEY (voucher_id) REFERENCES gift_voucher (id)');
$this->addSql('ALTER TABLE gift_voucher_usage ADD CONSTRAINT FK_FEE6B4A14A7E4868 FOREIGN KEY (sale_id) REFERENCES sales (id)');
$this->addSql('ALTER TABLE gift_voucher_usage ADD CONSTRAINT FK_FEE6B4A14C3A3BB FOREIGN KEY (payment_id) REFERENCES payment (id)');
$this->addSql('ALTER TABLE payment RENAME INDEX idx_6d28840d577c93d2 TO IDX_6D28840D1E3A4E9C');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE gift_certificate DROP FOREIGN KEY FK_16E9107DFF095D05');
$this->addSql('ALTER TABLE gift_certificate DROP FOREIGN KEY FK_16E9107D9395C3F3');
$this->addSql('ALTER TABLE gift_certificate_transaction DROP FOREIGN KEY FK_2CB4EEBEA97C76A8');
$this->addSql('ALTER TABLE gift_certificate_transaction DROP FOREIGN KEY FK_2CB4EEBE4A7E4868');
$this->addSql('ALTER TABLE gift_voucher DROP FOREIGN KEY FK_7FC896779395C3F3');
$this->addSql('ALTER TABLE gift_voucher_usage DROP FOREIGN KEY FK_FEE6B4A128AA1B6F');
$this->addSql('ALTER TABLE gift_voucher_usage DROP FOREIGN KEY FK_FEE6B4A14A7E4868');
$this->addSql('ALTER TABLE gift_voucher_usage DROP FOREIGN KEY FK_FEE6B4A14C3A3BB');
$this->addSql('DROP TABLE gift_certificate');
$this->addSql('DROP TABLE gift_certificate_transaction');
$this->addSql('DROP TABLE gift_voucher');
$this->addSql('DROP TABLE gift_voucher_usage');
$this->addSql('ALTER TABLE payment RENAME INDEX idx_6d28840d1e3a4e9c TO IDX_6D28840D577C93D2');
}
}