<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260220210804 extends AbstractMigration
{
public function getDescription(): string
{
return 'Filling customers info on orders table';
}
public function up(Schema $schema): void
{
// setting customer_name
$this->addSql("
UPDATE
`order` o
INNER JOIN `user` u ON
o.customer_id = u.id
SET
o.customer_name = CONCAT(u.first_name, ' ', u.last_name)
WHERE
o.created_by_guest = 0
");
// setting customer_phone
$this->addSql("
UPDATE
`order` o
INNER JOIN `user` u ON
o.customer_id = u.id
SET
o.customer_phone = u.phone
WHERE
o.created_by_guest = 0
");
// setting customer_email and managing cases deleted users
$this->addSql("
UPDATE `order` o
INNER JOIN `user` u ON o.customer_id = u.id
SET o.customer_email = CASE
WHEN u.email LIKE 'deleted-%' THEN
NULLIF(
SUBSTRING(
u.email,
LOCATE('-', u.email, LOCATE('-', u.email) + 1) + 1
),
''
)
ELSE u.email
END
WHERE o.created_by_guest = 0
AND (o.customer_email IS NULL OR o.customer_email = '');
");
}
}