Select Git revision
      
  Expression.js
  Message.php  2.35 KiB 
<?php
declare(strict_types=1);
namespace App\Domain\Message;
use JsonSerializable;
use DateTime;
use App\Domain\Group\Group ;
use App\Domain\User\User ;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
 * @ORM\Entity
 * @ORM\Table(name="messages")
 */
class Message implements JsonSerializable
{
    /**
     * @var int|null
     *
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue
     */
    private $id;
    /**
     * @var 
     * @ORM\ManyToOne(targetEntity="App\Domain\Group\Group")
     * @ORM\JoinColumn(name="id_receiver", referencedColumnName="id")
     */
    private $receiver;
    /**
     * @var 
     * @ORM\ManyToOne(targetEntity="App\Domain\User\User")
     * @ORM\JoinColumn(name="id_transmitter", referencedColumnName="id")
     */
    private $transmitter;
    /**
     * @var string
     * @ORM\Column(type="datetime")
     */
    private $date;
    /**
     * @var string
     * @ORM\Column(type="string")
     */
    private $body;
    /**
     * @param int|null $id
     * @param Group   $receiver
     * @param User   $transmitter
     * @param DateTime   $date
     * @param string   $body
     */
    public function __construct(?int $id, Group $receiver, User $transmitter, DateTime $date,
        string $body) {
        $this->id = $id;
        $this->receiver = $receiver;
        $this->transmitter = $transmitter;
        $this->date = $date;
        $this->body = $body;    }
    /**
     * @return int|null
     */
    public function getId(): ?int
    {
        return $this->id;
    }
    /**
     * @return Group
     */
    public function getReceiver(): Group
    {
        return $this->receiver;
    }
    /**
     * @return User
     */
    public function getTransmitter(): User
    {
        return $this->transmitter;
    }
    /**
     * @return string
     */
    public function getDate(): string
    {
        return $this->date->format('d/M/Y');
    }
    /**
     * @return string
     */
    public function getBody(): string
    {
        return $this->body;
    }
    /**
     * @return array
     */
    public function jsonSerialize()
    {
        return [
            'id' => $this->id,
            'receiver' => $this->receiver,
            'transmitter' => $this->transmitter,
            'date' => $this->date,
            'body' => $this->body
        ];
    }
}