Skip to content
Snippets Groups Projects
Select Git revision
  • 51dacdeb068bae787f77713b175bb195401ae40e
  • main default protected
  • doc
  • createDoc
  • modele_document
  • release
6 results

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
            ];
        }
    }