ReCast is a multi platform restreaming tool, you can stream with one servers to multiple services
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

232 lines
4.7 KiB

<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\DBAL\Connection;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\EndpointRepository")
* @ORM\HasLifecycleCallbacks()
*/
class Endpoint implements \JsonSerializable
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
* @var integer
*/
private $id;
/**
* @ORM\Column(type="boolean", nullable=false, options={"default": true})
* @var bool
*/
private $active;
/**
* @ORM\Column(type="string", length=255)
* @var string
*/
private $name;
/**
* @ORM\Column(type="string", length=255)
* @var string
*/
private $type;
/**
* @ORM\Column(type="string", length=255)
* @var string
*/
private $server;
/**
* @ORM\Column(name="streamKey", type="string", length=255)
* @var string
*/
private $streamKey;
/**
* @ORM\Column(name="channelName", type="string", length=255)
* @var string
*/
private $channelName;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Streams", inversedBy="endpoints")
* @ORM\JoinColumn(name="stream_id", referencedColumnName="id")
*/
private $stream;
/**
* @return int
* @author Soner Sayakci <shyim@posteo.de>
*/
public function getId(): int
{
return $this->id;
}
/**
* @return bool
* @author Soner Sayakci <shyim@posteo.de>
*/
public function isActive(): bool
{
return $this->active;
}
/**
* @param bool $active
* @author Soner Sayakci <shyim@posteo.de>
*/
public function setActive(bool $active): void
{
$this->active = $active;
}
/**
* @return string
* @author Soner Sayakci <shyim@posteo.de>
*/
public function getName(): ?string
{
return $this->name;
}
/**
* @param string $name
* @return Endpoint
* @author Soner Sayakci <shyim@posteo.de>
*/
public function setName($name): self
{
$this->name = $name;
return $this;
}
/**
* @return null|string
* @author Soner Sayakci <shyim@posteo.de>
*/
public function getType(): ?string
{
return $this->type;
}
/**
* @param string $type
* @return Endpoint
* @author Soner Sayakci <shyim@posteo.de>
*/
public function setType(string $type): self
{
$this->type = $type;
return $this;
}
/**
* @return null|string
* @author Soner Sayakci <shyim@posteo.de>
*/
public function getServer(): ?string
{
return $this->server;
}
/**
* @param string $server
* @return Endpoint
* @author Soner Sayakci <shyim@posteo.de>
*/
public function setServer(string $server): self
{
$this->server = $server;
return $this;
}
/**
* @return null|string
* @author Soner Sayakci <shyim@posteo.de>
*/
public function getStreamKey(): ?string
{
return $this->streamKey;
}
/**
* @param string $streamKey
* @return Endpoint
* @author Soner Sayakci <shyim@posteo.de>
*/
public function setStreamKey(string $streamKey): self
{
$this->streamKey = $streamKey;
return $this;
}
/**
* @return Streams
* @author Soner Sayakci <shyim@posteo.de>
*/
public function getStream(): ?Streams
{
return $this->stream;
}
/**
* @param mixed $stream
* @author Soner Sayakci <shyim@posteo.de>
*/
public function setStream($stream): void
{
$this->stream = $stream;
}
/**
* @return string
* @author Soner Sayakci <shyim@posteo.de>
*/
public function getChannelName(): string
{
return $this->channelName;
}
/**
* @param string $channelName
* @author Soner Sayakci <shyim@posteo.de>
*/
public function setChannelName(string $channelName): void
{
$this->channelName = $channelName;
}
/**
* @ORM\PostPersist()
* @ORM\PostUpdate()
* @author Soner Sayakci <shyim@posteo.de>
* @param LifecycleEventArgs $args
* @throws \Doctrine\DBAL\DBALException
*/
public function updateConfig(LifecycleEventArgs $args): void
{
$args->getEntityManager()->getConnection()->insert('queue', ['task' => 'generate_config']);
}
/**
* @return array|mixed
* @author Soner Sayakci <shyim@posteo.de>
*/
public function jsonSerialize()
{
return get_object_vars($this);
}
}