Files
basango/projects/backend/src/FeedManagement/Application/ReadModel/SourceReference.php
T
2025-10-20 14:56:03 +02:00

37 lines
950 B
PHP

<?php
declare(strict_types=1);
namespace Basango\FeedManagement\Application\ReadModel;
use Basango\Aggregator\Domain\Model\Identity\SourceId;
use Basango\SharedKernel\Domain\DataTransfert\DataMapping;
/**
* Class SourceReference.
*
* @author bernard-ng <bernard@devscast.tech>
*/
final readonly class SourceReference
{
public function __construct(
public SourceId $id,
public string $name,
public ?string $displayName,
public ?string $image,
public string $url
) {
}
public static function create(array $item): self
{
return new self(
SourceId::fromString(DataMapping::string($item, 'source_id')),
DataMapping::string($item, 'source_name'),
DataMapping::nullableString($item, 'source_display_name'),
DataMapping::nullableString($item, 'source_image'),
DataMapping::string($item, 'source_url'),
);
}
}