Skip to content

Commit 21c50d5

Browse files
committed
#395: Refactored to use checksums for "relationsmodified" change detection
1 parent fe37e6b commit 21c50d5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+658
-423
lines changed

Diff for: fixtures/playlist_slide.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ App\Entity\Tenant\PlaylistSlide:
66
modifiedAt: '<dateTimeBetween($createdAt, "-1 days")>'
77
id: '<ulid($createdAt)>'
88

9-
playlist_slide_abc_1 (extends playlist_slide):
9+
playlist_slide_abc_{1..10} (extends playlist_slide):
1010
playlist: '@playlist_abc_1'
11-
slide: '@slide_abc_1'
11+
slide: '@slide_abc_<current()>'
1212
tenant: '@tenant_abc'
13-
playlist_slide_abc_{2..40} (extends playlist_slide):
13+
playlist_slide_abc_{11..40} (extends playlist_slide):
1414
playlist: '@playlist_abc_*'
1515
slide: '@slide_abc_*'
1616
tenant: '@tenant_abc'

Diff for: fixtures/slide.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@ App\Entity\Tenant\Slide:
1313
theme: '@theme_abc_1'
1414
feed: '@feed_abc_1'
1515
tenant: '@tenant_abc'
16+
media: [ '@media_abc_*', '@media_abc_*', '@media_abc_*']
1617
slide_abc_{2..60} (extends slide):
1718
title: 'slide_abc_<current()>'
1819
theme: '@theme_abc_*'
1920
tenant: '@tenant_abc'
21+
media: [ '@media_abc_*', '@media_abc_*', '@media_abc_*']
2022
slide_def_shared_to_abc (extends slide):
2123
title: 'slide_def_shared_to_abc'
2224
theme: '@theme_def'

Diff for: migrations/Version20231220130825.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace DoctrineMigrations;
66

7-
use App\EventListener\RelationsModifiedAtListener;
7+
use App\EventListener\RelationsChecksumListener;
88
use Doctrine\DBAL\Schema\Schema;
99
use Doctrine\Migrations\AbstractMigration;
1010

@@ -56,9 +56,9 @@ public function up(Schema $schema): void
5656

5757
// Populate newly created 'relations_modified_at' and 'relations_modified' fields with correct data.
5858
// Use the UPDATE queries defined in the doctrine listener but without a WHERE clause.
59-
$sqlQueries = RelationsModifiedAtListener::getUpdateRelationsAtQueries(withWhereClause: false);
59+
$sqlQueries = RelationsChecksumListener::getUpdateRelationsAtQueries(withWhereClause: false);
6060
foreach ($sqlQueries as $sqlQuery) {
61-
$this->addSql($sqlQuery);
61+
// $this->addSql($sqlQuery);
6262
}
6363
}
6464

Diff for: migrations/Version20240221142818.php

+135
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace DoctrineMigrations;
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 Version20240221142818 extends AbstractMigration
14+
{
15+
public function getDescription(): string
16+
{
17+
return '';
18+
}
19+
20+
public function up(Schema $schema): void
21+
{
22+
// this up() migration is auto-generated, please modify it to your needs
23+
$this->addSql('DROP INDEX relations_modified_at_idx ON feed');
24+
$this->addSql('DROP INDEX modified_at_idx ON feed');
25+
$this->addSql('ALTER TABLE feed ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, DROP relations_modified_at, CHANGE relations_modified relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
26+
$this->addSql('CREATE INDEX changed_idx ON feed (changed)');
27+
$this->addSql('ALTER TABLE feed_source ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, ADD relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
28+
$this->addSql('CREATE INDEX changed_idx ON feed_source (changed)');
29+
$this->addSql('ALTER TABLE media ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, ADD relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
30+
$this->addSql('CREATE INDEX changed_idx ON media (changed)');
31+
$this->addSql('DROP INDEX modified_at_idx ON playlist');
32+
$this->addSql('DROP INDEX relations_modified_at_idx ON playlist');
33+
$this->addSql('ALTER TABLE playlist ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, DROP relations_modified_at, CHANGE relations_modified relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
34+
$this->addSql('CREATE INDEX changed_idx ON playlist (changed)');
35+
$this->addSql('DROP INDEX relations_modified_at_idx ON playlist_screen_region');
36+
$this->addSql('DROP INDEX modified_at_idx ON playlist_screen_region');
37+
$this->addSql('ALTER TABLE playlist_screen_region ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, DROP relations_modified_at, CHANGE relations_modified relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
38+
$this->addSql('CREATE INDEX changed_idx ON playlist_screen_region (changed)');
39+
$this->addSql('DROP INDEX relations_modified_at_idx ON playlist_slide');
40+
$this->addSql('DROP INDEX modified_at_idx ON playlist_slide');
41+
$this->addSql('ALTER TABLE playlist_slide ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, DROP relations_modified_at, CHANGE relations_modified relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
42+
$this->addSql('CREATE INDEX changed_idx ON playlist_slide (changed)');
43+
$this->addSql('ALTER TABLE schedule ADD version INT DEFAULT 1 NOT NULL');
44+
$this->addSql('DROP INDEX relations_modified_at_idx ON screen');
45+
$this->addSql('DROP INDEX modified_at_idx ON screen');
46+
$this->addSql('ALTER TABLE screen ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, DROP relations_modified_at, CHANGE relations_modified relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
47+
$this->addSql('CREATE INDEX changed_idx ON screen (changed)');
48+
$this->addSql('DROP INDEX relations_modified_at_idx ON screen_campaign');
49+
$this->addSql('DROP INDEX modified_at_idx ON screen_campaign');
50+
$this->addSql('ALTER TABLE screen_campaign ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, DROP relations_modified_at, CHANGE relations_modified relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
51+
$this->addSql('CREATE INDEX changed_idx ON screen_campaign (changed)');
52+
$this->addSql('DROP INDEX modified_at_idx ON screen_group');
53+
$this->addSql('DROP INDEX relations_modified_at_idx ON screen_group');
54+
$this->addSql('ALTER TABLE screen_group ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, DROP relations_modified_at, CHANGE relations_modified relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
55+
$this->addSql('CREATE INDEX changed_idx ON screen_group (changed)');
56+
$this->addSql('DROP INDEX relations_modified_at_idx ON screen_group_campaign');
57+
$this->addSql('DROP INDEX modified_at_idx ON screen_group_campaign');
58+
$this->addSql('ALTER TABLE screen_group_campaign ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, DROP relations_modified_at, CHANGE relations_modified relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
59+
$this->addSql('CREATE INDEX changed_idx ON screen_group_campaign (changed)');
60+
$this->addSql('ALTER TABLE screen_layout ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, DROP relations_modified_at, CHANGE relations_modified relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
61+
$this->addSql('CREATE INDEX changed_idx ON screen_layout (changed)');
62+
$this->addSql('ALTER TABLE screen_layout_regions ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, DROP relations_modified_at, CHANGE relations_modified relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
63+
$this->addSql('CREATE INDEX changed_idx ON screen_layout_regions (changed)');
64+
$this->addSql('ALTER TABLE screen_user ADD version INT DEFAULT 1 NOT NULL');
65+
$this->addSql('DROP INDEX modified_at_idx ON slide');
66+
$this->addSql('DROP INDEX relations_modified_at_idx ON slide');
67+
$this->addSql('ALTER TABLE slide ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, DROP relations_modified_at, CHANGE relations_modified relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
68+
$this->addSql('CREATE INDEX changed_idx ON slide (changed)');
69+
$this->addSql('ALTER TABLE template ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, ADD relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
70+
$this->addSql('CREATE INDEX changed_idx ON template (changed)');
71+
$this->addSql('ALTER TABLE tenant ADD version INT DEFAULT 1 NOT NULL');
72+
$this->addSql('ALTER TABLE theme ADD version INT DEFAULT 1 NOT NULL, ADD changed TINYINT(1) NOT NULL, ADD relations_checksum JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
73+
$this->addSql('CREATE INDEX changed_idx ON theme (changed)');
74+
$this->addSql('ALTER TABLE user ADD version INT DEFAULT 1 NOT NULL');
75+
$this->addSql('ALTER TABLE user_role_tenant ADD version INT DEFAULT 1 NOT NULL');
76+
}
77+
78+
public function down(Schema $schema): void
79+
{
80+
// this down() migration is auto-generated, please modify it to your needs
81+
$this->addSql('DROP INDEX changed_idx ON template');
82+
$this->addSql('ALTER TABLE template DROP version, DROP changed, DROP relations_checksum');
83+
$this->addSql('DROP INDEX changed_idx ON slide');
84+
$this->addSql('ALTER TABLE slide ADD relations_modified_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', DROP version, DROP changed, CHANGE relations_checksum relations_modified JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
85+
$this->addSql('CREATE INDEX modified_at_idx ON slide (modified_at)');
86+
$this->addSql('CREATE INDEX relations_modified_at_idx ON slide (relations_modified_at)');
87+
$this->addSql('ALTER TABLE user DROP version');
88+
$this->addSql('ALTER TABLE schedule DROP version');
89+
$this->addSql('DROP INDEX changed_idx ON screen_group');
90+
$this->addSql('ALTER TABLE screen_group ADD relations_modified_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', DROP version, DROP changed, CHANGE relations_checksum relations_modified JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
91+
$this->addSql('CREATE INDEX modified_at_idx ON screen_group (modified_at)');
92+
$this->addSql('CREATE INDEX relations_modified_at_idx ON screen_group (relations_modified_at)');
93+
$this->addSql('ALTER TABLE tenant DROP version');
94+
$this->addSql('DROP INDEX changed_idx ON feed_source');
95+
$this->addSql('ALTER TABLE feed_source DROP version, DROP changed, DROP relations_checksum');
96+
$this->addSql('DROP INDEX changed_idx ON screen_group_campaign');
97+
$this->addSql('ALTER TABLE screen_group_campaign ADD relations_modified_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', DROP version, DROP changed, CHANGE relations_checksum relations_modified JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
98+
$this->addSql('CREATE INDEX relations_modified_at_idx ON screen_group_campaign (relations_modified_at)');
99+
$this->addSql('CREATE INDEX modified_at_idx ON screen_group_campaign (modified_at)');
100+
$this->addSql('DROP INDEX changed_idx ON screen_layout_regions');
101+
$this->addSql('ALTER TABLE screen_layout_regions ADD relations_modified_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', DROP version, DROP changed, CHANGE relations_checksum relations_modified JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
102+
$this->addSql('DROP INDEX changed_idx ON playlist_slide');
103+
$this->addSql('ALTER TABLE playlist_slide ADD relations_modified_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', DROP version, DROP changed, CHANGE relations_checksum relations_modified JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
104+
$this->addSql('CREATE INDEX relations_modified_at_idx ON playlist_slide (relations_modified_at)');
105+
$this->addSql('CREATE INDEX modified_at_idx ON playlist_slide (modified_at)');
106+
$this->addSql('DROP INDEX changed_idx ON theme');
107+
$this->addSql('ALTER TABLE theme DROP version, DROP changed, DROP relations_checksum');
108+
$this->addSql('DROP INDEX changed_idx ON playlist');
109+
$this->addSql('ALTER TABLE playlist ADD relations_modified_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', DROP version, DROP changed, CHANGE relations_checksum relations_modified JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
110+
$this->addSql('CREATE INDEX modified_at_idx ON playlist (modified_at)');
111+
$this->addSql('CREATE INDEX relations_modified_at_idx ON playlist (relations_modified_at)');
112+
$this->addSql('DROP INDEX changed_idx ON feed');
113+
$this->addSql('ALTER TABLE feed ADD relations_modified_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', DROP version, DROP changed, CHANGE relations_checksum relations_modified JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
114+
$this->addSql('CREATE INDEX relations_modified_at_idx ON feed (relations_modified_at)');
115+
$this->addSql('CREATE INDEX modified_at_idx ON feed (modified_at)');
116+
$this->addSql('DROP INDEX changed_idx ON playlist_screen_region');
117+
$this->addSql('ALTER TABLE playlist_screen_region ADD relations_modified_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', DROP version, DROP changed, CHANGE relations_checksum relations_modified JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
118+
$this->addSql('CREATE INDEX relations_modified_at_idx ON playlist_screen_region (relations_modified_at)');
119+
$this->addSql('CREATE INDEX modified_at_idx ON playlist_screen_region (modified_at)');
120+
$this->addSql('ALTER TABLE screen_user DROP version');
121+
$this->addSql('DROP INDEX changed_idx ON screen_campaign');
122+
$this->addSql('ALTER TABLE screen_campaign ADD relations_modified_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', DROP version, DROP changed, CHANGE relations_checksum relations_modified JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
123+
$this->addSql('CREATE INDEX relations_modified_at_idx ON screen_campaign (relations_modified_at)');
124+
$this->addSql('CREATE INDEX modified_at_idx ON screen_campaign (modified_at)');
125+
$this->addSql('ALTER TABLE user_role_tenant DROP version');
126+
$this->addSql('DROP INDEX changed_idx ON screen_layout');
127+
$this->addSql('ALTER TABLE screen_layout ADD relations_modified_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', DROP version, DROP changed, CHANGE relations_checksum relations_modified JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
128+
$this->addSql('DROP INDEX changed_idx ON media');
129+
$this->addSql('ALTER TABLE media DROP version, DROP changed, DROP relations_checksum');
130+
$this->addSql('DROP INDEX changed_idx ON screen');
131+
$this->addSql('ALTER TABLE screen ADD relations_modified_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', DROP version, DROP changed, CHANGE relations_checksum relations_modified JSON DEFAULT \'{}\' NOT NULL COMMENT \'(DC2Type:json)\'');
132+
$this->addSql('CREATE INDEX relations_modified_at_idx ON screen (relations_modified_at)');
133+
$this->addSql('CREATE INDEX modified_at_idx ON screen (modified_at)');
134+
}
135+
}

Diff for: phpunit.xml.dist

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<server name="SHELL_VERBOSITY" value="-1" />
1616
<server name="SYMFONY_PHPUNIT_REMOVE" value="" />
1717
<server name="SYMFONY_PHPUNIT_VERSION" value="9.5" />
18+
<server name="SYMFONY_DEPRECATIONS_HELPER" value="disabled"/>
1819
</php>
1920

2021
<testsuites>

Diff for: src/DataFixtures/Loader/DoctrineOrmLoaderDecorator.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace App\DataFixtures\Loader;
66

7-
use App\EventListener\RelationsModifiedAtListener;
7+
use App\EventListener\RelationsChecksumListener;
88
use App\EventListener\TimestampableListener;
99
use Doctrine\ORM\EntityManagerInterface;
1010
use Hautelook\AliceBundle\Loader\DoctrineOrmLoader;
@@ -39,7 +39,7 @@ public function load(Application $application, EntityManagerInterface $manager,
3939
// Disable "RelationsModifiedAtListener" while loading fixtures for performance reasons.
4040
$postFlushListeners = $eventManager->getListeners('postFlush');
4141
foreach ($postFlushListeners as $listener) {
42-
if ($listener instanceof RelationsModifiedAtListener) {
42+
if ($listener instanceof RelationsChecksumListener) {
4343
$relationsModifiedAtListener = $listener;
4444
$eventManager->removeEventListener('postFlush', $relationsModifiedAtListener);
4545
break;
@@ -83,7 +83,7 @@ private function applyRelationsModified(EntityManagerInterface $manager): void
8383
{
8484
$connection = $manager->getConnection();
8585

86-
$sqlQueries = RelationsModifiedAtListener::getUpdateRelationsAtQueries(withWhereClause: false);
86+
$sqlQueries = RelationsChecksumListener::getUpdateRelationsAtQueries(withWhereClause: false);
8787

8888
$rows = 0;
8989
foreach ($sqlQueries as $sqlQuery) {

Diff for: src/Dto/Feed.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66

77
use App\Dto\Trait\BlameableTrait;
88
use App\Dto\Trait\IdentifiableTrait;
9-
use App\Dto\Trait\RelationsModifiedTrait;
9+
use App\Dto\Trait\RelationsChecksumTrait;
1010
use App\Dto\Trait\TimestampableTrait;
1111

1212
class Feed
1313
{
1414
use BlameableTrait;
1515
use IdentifiableTrait;
1616
use TimestampableTrait;
17-
use RelationsModifiedTrait;
17+
use RelationsChecksumTrait;
1818

1919
public ?array $configuration = [];
2020
public Slide $slide;

Diff for: src/Dto/Playlist.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
use App\Dto\Trait\BlameableTrait;
88
use App\Dto\Trait\IdentifiableTrait;
9-
use App\Dto\Trait\RelationsModifiedTrait;
9+
use App\Dto\Trait\RelationsChecksumTrait;
1010
use App\Dto\Trait\TimestampableTrait;
1111
use Doctrine\Common\Collections\ArrayCollection;
1212
use Doctrine\Common\Collections\Collection;
@@ -17,7 +17,7 @@ class Playlist
1717
use BlameableTrait;
1818
use IdentifiableTrait;
1919
use TimestampableTrait;
20-
use RelationsModifiedTrait;
20+
use RelationsChecksumTrait;
2121

2222
#[Groups(['playlist-screen-region:read', 'screen-campaigns:read', 'campaigns/screens:read', 'slides/playlists:read', 'screen-groups/campaigns:read', 'campaigns/screen-groups:read'])]
2323
public string $title = '';

Diff for: src/Dto/PlaylistScreenRegion.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
namespace App\Dto;
66

77
use App\Dto\Trait\IdentifiableTrait;
8-
use App\Dto\Trait\RelationsModifiedTrait;
8+
use App\Dto\Trait\RelationsChecksumTrait;
99
use Symfony\Component\Serializer\Annotation\Groups;
1010

1111
class PlaylistScreenRegion
1212
{
1313
use IdentifiableTrait;
14-
use RelationsModifiedTrait;
14+
use RelationsChecksumTrait;
1515

1616
#[Groups(['playlist-screen-region:read'])]
1717
public Playlist $playlist;

Diff for: src/Dto/PlaylistSlide.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
namespace App\Dto;
66

77
use App\Dto\Trait\IdentifiableTrait;
8-
use App\Dto\Trait\RelationsModifiedTrait;
8+
use App\Dto\Trait\RelationsChecksumTrait;
99
use Symfony\Component\Serializer\Annotation\Groups;
1010

1111
class PlaylistSlide
1212
{
1313
use IdentifiableTrait;
14-
use RelationsModifiedTrait;
14+
use RelationsChecksumTrait;
1515

1616
#[Groups(['playlist-slide:read', 'slides/playlists:read'])]
1717
public Slide $slide;

Diff for: src/Dto/Screen.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
use App\Dto\Trait\BlameableTrait;
88
use App\Dto\Trait\IdentifiableTrait;
9-
use App\Dto\Trait\RelationsModifiedTrait;
9+
use App\Dto\Trait\RelationsChecksumTrait;
1010
use App\Dto\Trait\TimestampableTrait;
1111
use Symfony\Component\Serializer\Annotation\Groups;
1212

@@ -15,7 +15,7 @@ class Screen
1515
use BlameableTrait;
1616
use IdentifiableTrait;
1717
use TimestampableTrait;
18-
use RelationsModifiedTrait;
18+
use RelationsChecksumTrait;
1919

2020
#[Groups(['campaigns/screens:read', 'screen-groups/screens:read'])]
2121
public string $title = '';

Diff for: src/Dto/ScreenCampaign.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
use App\Dto\Trait\BlameableTrait;
88
use App\Dto\Trait\IdentifiableTrait;
9-
use App\Dto\Trait\RelationsModifiedTrait;
9+
use App\Dto\Trait\RelationsChecksumTrait;
1010
use App\Dto\Trait\TimestampableTrait;
1111
use Symfony\Component\Serializer\Annotation\Groups;
1212

@@ -15,7 +15,7 @@ class ScreenCampaign
1515
use BlameableTrait;
1616
use IdentifiableTrait;
1717
use TimestampableTrait;
18-
use RelationsModifiedTrait;
18+
use RelationsChecksumTrait;
1919

2020
#[Groups(['screen-campaigns:read', 'campaigns/screens:read'])]
2121
public Playlist $campaign;

0 commit comments

Comments
 (0)