slovocast/app/src/Domain/Entity/Channel.php

104 lines
2.1 KiB
PHP
Raw Normal View History

<?php
namespace Slovocast\Domain\Entity;
2024-05-30 01:44:03 +00:00
use Slovocast\Domain\Entity;
class Channel
{
2024-05-30 01:44:03 +00:00
use Entity;
public function __construct(
private string $name,
2024-05-30 01:56:42 +00:00
private string $description,
2024-05-15 01:56:48 +00:00
private ?string $link = '',
private ?string $language = '',
private ?string $copyright = '',
private ?bool $explicit = false,
) {}
2024-05-15 01:56:48 +00:00
public function getName(): string
{
return $this->name;
}
public function getDescription(): string
{
return $this->description;
}
public function getLink(): string
{
return $this->link;
}
2024-05-30 01:56:42 +00:00
public function setLink(string $link): Channel
{
$this->link = $link;
return $this;
}
2024-05-15 01:56:48 +00:00
public function getLanguage(): string
{
return $this->language;
}
2024-05-30 01:56:42 +00:00
public function setLanguage(string $language): Channel
{
$this->language = $language;
return $this;
}
2024-05-15 01:56:48 +00:00
public function getCopyright(): string
{
return $this->copyright;
}
2024-05-30 01:56:42 +00:00
public function setCopyright(string $copyright): Channel
{
$this->copyright = $copyright;
return $this;
}
public function isExplicit(): bool
{
return $this->explicit;
}
public function setExplicit(bool $explicit): Channel
{
$this->explicit = $explicit;
return $this;
}
2024-05-15 01:56:48 +00:00
/**
* @param array $props The properties of the Channel model
* @return Channel
*/
public static function fromArray(array $props): Channel
{
2024-05-30 01:44:03 +00:00
$channel = new self(
2024-05-15 01:56:48 +00:00
$props['name'],
$props['description'] ?? '',
$props['link'] ?? '',
$props['language'] ?? '',
$props['copyright'] ?? '',
$props['explicit'] ?? false
);
2024-05-30 01:44:03 +00:00
if ($props['id']) {
$channel->setId($props['id']);
}
if ($props['createdAt']) {
$channel->setCreatedAt($props['createdAt']);
}
if ($props['updatedAt']) {
$channel->setUpdatedAt($props['updatedAt']);
}
return $channel;
2024-05-15 01:56:48 +00:00
}
}