Add episode factory.

This commit is contained in:
Dave Smith-Hayes 2025-04-16 22:11:12 -04:00
parent 75e4f5f808
commit e59b1ea2d1
2 changed files with 44 additions and 0 deletions

View File

@ -4,10 +4,12 @@ namespace Slovocast\Domain\Entity;
use DateTimeImmutable; use DateTimeImmutable;
use Slovocast\Domain\Entity as EntityTrait; use Slovocast\Domain\Entity as EntityTrait;
use Slovocast\Domain\Record as RecordTrait;
class Episode class Episode
{ {
use EntityTrait; use EntityTrait;
use RecordTrait;
private string $duration; private string $duration;

View File

@ -0,0 +1,42 @@
<?php
namespace Slovocast\Domain\Factory;
use Slovocast\Domain\Entity\Episode;
use Slovocast\Domain\FactoryInterface;
class EpisodeFactory implements FactoryInterface
{
public static function fromArray(array $props): Episode
{
$episode = new Episode(
$props['title'],
$props['link'],
(int) $props['length'],
$props['description'],
$props['serialNumber'],
(bool) $props['explicit'],
$props['publishedDate'],
$props['episodeType']
);
if ($props['id']) {
$episode->setId($props['id']);
}
if ($props['created_at']) {
$episode->setCreatedAt($props['createdAt']);
}
if ($props['updated_id']) {
$episode->setUpdatedAt($props['updatedAt']);
}
return $episode;
}
public static function toArray(Episode $episode): array
{
return [];
}
}