*/ private array $destinations = []; public function save(LinkDestination $destination): void { $this->destinations[$destination->id] = $destination; } public function findById(string $id): ?LinkDestination { return $this->destinations[$id] ?? null; } public function findByLinkId(SmartLinkId $linkId): array { return array_values(array_filter( $this->destinations, fn(LinkDestination $destination) => $destination->linkId->equals($linkId) )); } public function findDefaultByLinkId(SmartLinkId $linkId): ?LinkDestination { foreach ($this->destinations as $destination) { if ($destination->linkId->equals($linkId) && $destination->isDefault) { return $destination; } } return null; } public function deleteByLinkId(SmartLinkId $linkId): void { $this->destinations = array_filter( $this->destinations, fn(LinkDestination $destination) => ! $destination->linkId->equals($linkId) ); } public function deleteById(string $id): void { unset($this->destinations[$id]); } // Test helper public function clear(): void { $this->destinations = []; } }