<?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 Version20250801044652 extends AbstractMigration
{
public function getDescription(): string
{
return 'Insert categories into dtb_category with full fields and upsert';
}
public function up(Schema $schema): void
{
// Tạo category cha "分類" với id = 999
$this->addSql('
INSERT INTO dtb_category
(id, parent_category_id, creator_id, category_name, hierarchy, sort_no, create_date, update_date, discriminator_type)
VALUES
(999, NULL, NULL, \'分類\', 1, 0, NOW(), NOW(), \'category\')
ON CONFLICT (id) DO UPDATE SET
category_name = EXCLUDED.category_name,
update_date = NOW()
');
// Tạo các category con với parent_category_id = 999
$categories = [
['id' => 1000, 'category_name' => '[IMEI番号]'],
['id' => 1001, 'category_name' => '端末'],
['id' => 1002, 'category_name' => 'ギガ追加'],
['id' => 1003, 'category_name' => '海外向けギガ追加'],
];
foreach ($categories as $cat) {
$this->addSql('
INSERT INTO dtb_category
(id, parent_category_id, creator_id, category_name, hierarchy, sort_no, create_date, update_date, discriminator_type)
VALUES
(:id, 999, NULL, :category_name, 2, 0, NOW(), NOW(), \'category\')
ON CONFLICT (id) DO UPDATE SET
parent_category_id = 999,
category_name = EXCLUDED.category_name,
hierarchy = 2,
update_date = NOW()
', [
'id' => $cat['id'],
'category_name' => $cat['category_name'],
]);
}
}
public function down(Schema $schema): void
{
// Xóa các category con trước
$categoryIds = [1000, 1001, 1002, 1003];
$this->addSql('DELETE FROM dtb_category WHERE id IN (' . implode(',', $categoryIds) . ')');
// Xóa category cha
$this->addSql('DELETE FROM dtb_category WHERE id = 999');
}
}