src/Database/Domain/Entity/Log.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Database\Domain\Entity;
  3. use App\Database\Domain\Entity\User\User;
  4. use App\Database\Domain\Traits\CreationDateTrait;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Symfony\Component\Validator\Constraints as Assert;
  7. /**
  8.  * @ORM\Entity()
  9.  */
  10. class Log extends AbstractEntity
  11. {
  12.     use CreationDateTrait;
  13.     public const LEVEL_INFO 'info';
  14.     public const LEVEL_WARNING 'warning';
  15.     public const LEVEL_ERROR 'error';
  16.     public const SOURCE_GLOBAL 'global';
  17.     public const SOURCE_GOOGLE 'google';
  18.     public const SOURCE_FACEBOOK 'facebook';
  19.     public const SOURCE_STRIPE 'stripe';
  20.     public const SOURCE_APPLE 'apple';
  21.     public const SOURCE_MAILER_TRANSPORT 'mailer.transport';
  22.     /**
  23.      * @ORM\ManyToOne(targetEntity="App\Database\Domain\Entity\User\User")
  24.      *
  25.      * @ORM\JoinColumn(nullable=true)
  26.      */
  27.     private ?User $user;
  28.     /**
  29.      * @Assert\Choice(choices={
  30.      *     Log::LEVEL_INFO,
  31.      *     Log::LEVEL_WARNING,
  32.      *     Log::LEVEL_ERROR
  33.      *     }, message="Invalid log level"
  34.      * )
  35.      *
  36.      * @ORM\Column(type="string", nullable=false)
  37.      */
  38.     private string $level;
  39.     /**
  40.      * @ORM\Column(type="string")
  41.      */
  42.     private string $source;
  43.     /**
  44.      * @ORM\Column(type="string", nullable=false)
  45.      */
  46.     private string $message;
  47.     /**
  48.      * @ORM\Column(type="json", nullable=true)
  49.      */
  50.     private ?array $extras;
  51.     public function __construct(
  52.         string $id,
  53.         string $level,
  54.         string $source,
  55.         string $message,
  56.         ?array $extras null,
  57.         ?User $user null
  58.     ) {
  59.         $this->id $id;
  60.         $this->level $level;
  61.         $this->message $message;
  62.         $this->source $source;
  63.         $this->extras $extras;
  64.         $this->user $user;
  65.         $this->creationDate = new \DateTimeImmutable();
  66.     }
  67.     public function getUser(): ?User
  68.     {
  69.         return $this->user;
  70.     }
  71.     public function setUser(?User $user): self
  72.     {
  73.         $this->user $user;
  74.         return $this;
  75.     }
  76.     public function getLevel(): string
  77.     {
  78.         return $this->level;
  79.     }
  80.     public function setLevel(string $level): self
  81.     {
  82.         $this->level $level;
  83.         return $this;
  84.     }
  85.     public function getMessage(): string
  86.     {
  87.         return $this->message;
  88.     }
  89.     public function setMessage(string $message): self
  90.     {
  91.         $this->message $message;
  92.         return $this;
  93.     }
  94.     public function getExtras(): ?array
  95.     {
  96.         return $this->extras;
  97.     }
  98.     public function setExtras(?array $extras): self
  99.     {
  100.         $this->extras $extras;
  101.         return $this;
  102.     }
  103. }