<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260624120000 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add dashboard query indexes on order table';
}
public function up(Schema $schema): void
{
$this->addSql('CREATE INDEX idx_order_checkout_created ON `order` (checkout_state, created_at)');
$this->addSql('CREATE INDEX idx_order_shop_checkout_created ON `order` (shop_id, checkout_state, created_at)');
$this->addSql('CREATE INDEX idx_order_franchise_checkout_created ON `order` (franchise_id, checkout_state, created_at)');
$this->addSql('CREATE INDEX idx_payment_checking_state ON payment (checking_id, state)');
$this->addSql('CREATE INDEX idx_customer_franchise_created ON customer_franchise (franchise_id, created_at, deleted)');
$this->addSql('CREATE INDEX idx_customer_shop_created ON customer_shop (shop_id, created_at, deleted)');
}
public function down(Schema $schema): void
{
$this->addSql('DROP INDEX idx_customer_shop_created ON customer_shop');
$this->addSql('DROP INDEX idx_customer_franchise_created ON customer_franchise');
$this->addSql('DROP INDEX idx_payment_checking_state ON payment');
$this->addSql('DROP INDEX idx_order_checkout_created ON `order`');
$this->addSql('DROP INDEX idx_order_shop_checkout_created ON `order`');
$this->addSql('DROP INDEX idx_order_franchise_checkout_created ON `order`');
}
}