Skip to content

Commit c94fc68

Browse files
committed
chore: add to table SummitAttendeeTicket fild summit id to improve performance
chore: add needed IDX
1 parent df7aedd commit c94fc68

File tree

4 files changed

+89
-1
lines changed

4 files changed

+89
-1
lines changed

app/Models/Foundation/Summit/Registration/Attendees/SummitAttendeeTicket.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ class SummitAttendeeTicket extends SilverstripeBaseModel
3939
implements IQREntity
4040
{
4141

42+
use SummitOwned;
43+
4244
use FinancialTrait;
4345

4446
/**
@@ -360,6 +362,7 @@ public function getOrder(): SummitOrder
360362
public function setOrder(SummitOrder $order): void
361363
{
362364
$this->order = $order;
365+
$this->setSummit($order->getSummit());
363366
}
364367

365368
/**

app/Repositories/Summit/DoctrineSummitAttendeeTicketRepository.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public function __construct(EntityManagerInterface $em, ClassMetadata $class)
5353
/** @var array<string, array{0:string,1:'join'|'leftJoin',2:array<int,string>}> */
5454
private array $joinCatalog = [
5555
'o' => ['e.order', 'join', []],
56-
's' => ['o.summit', 'join', ['o']],
56+
's' => ['e.summit', 'join', []],
5757
'ord_m' => ['o.owner', 'leftJoin', ['o']],
5858
'a' => ['e.owner', 'leftJoin', []],
5959
'a_c' => ['a.company', 'leftJoin', ['a']],
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Database\Migrations\Model;
6+
7+
use Doctrine\DBAL\Schema\Schema;
8+
use Doctrine\Migrations\AbstractMigration;
9+
use LaravelDoctrine\Migrations\Schema\Builder;
10+
use LaravelDoctrine\Migrations\Schema\Table;
11+
12+
/**
13+
* Auto-generated Migration: Please modify to your needs!
14+
*/
15+
final class Version20251002160949 extends AbstractMigration
16+
{
17+
public function getDescription(): string
18+
{
19+
return 'Add SummitID to Ticket Table';
20+
}
21+
22+
public function up(Schema $schema): void
23+
{
24+
$builder = new Builder($schema);
25+
if($schema->hasTable("SummitAttendeeTicket") && !$builder->hasColumn("SummitAttendeeTicket", "SummitID")) {
26+
$builder->table("SummitAttendeeTicket", function (Table $table) {
27+
$table->integer("SummitID", false, false)->setNotnull(false)->setDefault('NULL');
28+
$table->index("SummitID", "IDX_SummitAttendeeTicket_SummitID");
29+
$table->index(["SummitID","ID",], "IDX_SummitAttendeeTicket_SummitID_ID");
30+
$table->index(["OrderID","ID",], "IDX_SummitAttendeeTicket_OrderID_ID");
31+
$table->foreign("Summit", "SummitID", "ID", ["onDelete" => "CASCADE"], "FK_SummitAttendeeTicket_Summit");
32+
});
33+
}
34+
35+
}
36+
37+
public function down(Schema $schema): void
38+
{
39+
$builder = new Builder($schema);
40+
if($schema->hasTable("SummitAttendeeTicket") && $builder->hasColumn("SummitAttendeeTicket", "SummitID")) {
41+
$builder->table("SummitAttendeeTicket", function (Table $table) {
42+
$table->dropColumn('SummitID');
43+
});
44+
}
45+
46+
}
47+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Database\Migrations\Model;
6+
7+
use Doctrine\DBAL\Schema\Schema;
8+
use Doctrine\Migrations\AbstractMigration;
9+
10+
/**
11+
* Auto-generated Migration: Please modify to your needs!
12+
*/
13+
final class Version20251002160950 extends AbstractMigration
14+
{
15+
public function getDescription(): string
16+
{
17+
return 'Back Fill Ticket table with summit id from orders';
18+
}
19+
20+
public function up(Schema $schema): void
21+
{
22+
$sql = <<<SQL
23+
UPDATE SummitAttendeeTicket t
24+
JOIN SummitOrder o ON o.ID = t.OrderID
25+
SET t.SummitID = o.SummitID
26+
WHERE t.SummitID IS NULL;
27+
SQL;
28+
29+
$this->addSql($sql);
30+
31+
}
32+
33+
public function down(Schema $schema): void
34+
{
35+
// this down() migration is auto-generated, please modify it to your needs
36+
37+
}
38+
}

0 commit comments

Comments
 (0)