@@ -26,12 +26,14 @@ final class HotelCreated
2626A guest can check in by ` name ` :
2727
2828``` php
29+ use Patchlevel\EventSourcing\Aggregate\Uuid;
2930use Patchlevel\EventSourcing\Attribute\Event;
3031
3132#[Event('hotel.guest_checked_in')]
3233final class GuestIsCheckedIn
3334{
3435 public function __construct(
36+ public readonly Uuid $hotelId,
3537 public readonly string $guestName,
3638 ) {
3739 }
@@ -40,12 +42,14 @@ final class GuestIsCheckedIn
4042And also check out again:
4143
4244``` php
45+ use Patchlevel\EventSourcing\Aggregate\Uuid;
4346use Patchlevel\EventSourcing\Attribute\Event;
4447
4548#[Event('hotel.guest_checked_out')]
4649final class GuestIsCheckedOut
4750{
4851 public function __construct(
52+ public readonly Uuid $hotelId,
4953 public readonly string $guestName,
5054 ) {
5155 }
@@ -105,7 +109,7 @@ final class Hotel extends BasicAggregateRoot
105109 throw new GuestHasAlreadyCheckedIn($guestName);
106110 }
107111
108- $this->recordThat(new GuestIsCheckedIn($guestName));
112+ $this->recordThat(new GuestIsCheckedIn($this->id, $ guestName));
109113 }
110114
111115 public function checkOut(string $guestName): void
@@ -114,7 +118,7 @@ final class Hotel extends BasicAggregateRoot
114118 throw new IsNotAGuest($guestName);
115119 }
116120
117- $this->recordThat(new GuestIsCheckedOut($guestName));
121+ $this->recordThat(new GuestIsCheckedOut($this->id, $ guestName));
118122 }
119123
120124 #[Apply]
@@ -179,33 +183,33 @@ final class HotelProjector
179183 }
180184
181185 #[Subscribe(HotelCreated::class)]
182- public function handleHotelCreated(HotelCreated $event, Uuid $aggregateId ): void
186+ public function handleHotelCreated(HotelCreated $event): void
183187 {
184188 $this->db->insert(
185189 $this->table(),
186190 [
187- 'id' => $aggregateId ->toString(),
191+ 'id' => $event->hotelId ->toString(),
188192 'name' => $event->hotelName,
189193 'guests' => 0,
190194 ],
191195 );
192196 }
193197
194198 #[Subscribe(GuestIsCheckedIn::class)]
195- public function handleGuestIsCheckedIn(Uuid $aggregateId ): void
199+ public function handleGuestIsCheckedIn(GuestIsCheckedIn $event ): void
196200 {
197201 $this->db->executeStatement(
198202 "UPDATE {$this->table()} SET guests = guests + 1 WHERE id = ?;",
199- [$aggregateId ->toString()],
203+ [$event->hotelId ->toString()],
200204 );
201205 }
202206
203207 #[Subscribe(GuestIsCheckedOut::class)]
204- public function handleGuestIsCheckedOut(Uuid $aggregateId ): void
208+ public function handleGuestIsCheckedOut(GuestIsCheckedOut $event ): void
205209 {
206210 $this->db->executeStatement(
207211 "UPDATE {$this->table()} SET guests = guests - 1 WHERE id = ?;",
208- [$aggregateId ->toString()],
212+ [$event->hotelId ->toString()],
209213 );
210214 }
211215
0 commit comments