src/Entity/BalanceAmateur.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Dictionary\BalanceDetailUsageType;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use JMS\Serializer\Annotation\Groups;
  6. /**
  7.  * @ORM\Table(name="BalanceAmateur", indexes={
  8.  *
  9.  *   @ORM\Index(name="created_at_idx", columns={"created_at"}),
  10.  *   @ORM\Index(name="created_at_payout_idx", columns={"created_at", "payout"})
  11.  * })
  12.  *
  13.  * @ORM\HasLifecycleCallbacks()
  14.  *
  15.  * @ORM\Entity(repositoryClass="App\Repository\BalanceAmateurRepository")
  16.  */
  17. class BalanceAmateur
  18. {
  19.     /**
  20.      * @Groups({"adminindex"})
  21.      *
  22.      * @ORM\Id()
  23.      *
  24.      * @ORM\GeneratedValue()
  25.      *
  26.      * @ORM\Column(type="integer")
  27.      */
  28.     private $id;
  29.     /**
  30.      * @ORM\ManyToOne(targetEntity="App\Entity\Payment")
  31.      *
  32.      * @ORM\JoinColumn(name="payment_id", referencedColumnName="id", onDelete="CASCADE")
  33.      */
  34.     private $payment;
  35.     /**
  36.      * @Groups({"adminindex"})
  37.      *
  38.      * @ORM\Column(type="smallint")
  39.      */
  40.     private $type;
  41.     /**
  42.      * @Groups({"adminindex"})
  43.      *
  44.      * @ORM\Column(type="datetime")
  45.      */
  46.     private $created_at;
  47.     /**
  48.      * @ORM\Column(type="datetime")
  49.      */
  50.     private $updated_at;
  51.     /**
  52.      * @Groups({"adminindex"})
  53.      *
  54.      * @ORM\Column(type="decimal", precision=10, scale=4)
  55.      */
  56.     private $amount 0;
  57.     /**
  58.      * @ORM\ManyToOne(targetEntity="App\Entity\Member")
  59.      *
  60.      * @ORM\JoinColumn(name="member_id", referencedColumnName="id", onDelete="CASCADE")
  61.      */
  62.     private $member;
  63.     /**
  64.      * @Groups({"adminindex"})
  65.      *
  66.      * @ORM\ManyToOne(targetEntity="App\Entity\Payout")
  67.      *
  68.      * @ORM\JoinColumn(name="payout", referencedColumnName="id", onDelete="SET NULL")
  69.      */
  70.     private $payout;
  71.     /**
  72.      * @Groups({"adminindex"})
  73.      *
  74.      * @ORM\ManyToOne(targetEntity="App\Entity\BalanceDetail", cascade={"persist"})
  75.      *
  76.      * @ORM\JoinColumn(name="balance_detail_id", referencedColumnName="id", onDelete="SET NULL")
  77.      */
  78.     private $balance_detail;
  79.     /**
  80.      * @ORM\PrePersist
  81.      */
  82.     public function prePersist()
  83.     {
  84.         if (!$this->getCreatedAt()) {
  85.             $this->setCreatedAt(new \DateTime());
  86.         }
  87.         $this->setUpdatedAt(new \DateTime());
  88.     }
  89.     public function getBalanceDetail(): ?BalanceDetail
  90.     {
  91.         return $this->balance_detail;
  92.     }
  93.     public function setBalanceDetail(?BalanceDetail $balanceDetail): self
  94.     {
  95.         $this->balance_detail $balanceDetail;
  96.         return $this;
  97.     }
  98.     public function getId(): ?int
  99.     {
  100.         return $this->id;
  101.     }
  102.     public function getPayment(): ?Payment
  103.     {
  104.         return $this->payment;
  105.     }
  106.     public function setPayment(?Payment $payment): self
  107.     {
  108.         $this->payment $payment;
  109.         return $this;
  110.     }
  111.     public function getType(): ?int
  112.     {
  113.         return $this->type;
  114.     }
  115.     public function setType(int $type): self
  116.     {
  117.         $this->type $type;
  118.         return $this;
  119.     }
  120.     public function getCreatedAt(): ?\DateTimeInterface
  121.     {
  122.         return $this->created_at;
  123.     }
  124.     public function setCreatedAt(\DateTimeInterface $created_at): self
  125.     {
  126.         $this->created_at $created_at;
  127.         return $this;
  128.     }
  129.     public function getUpdatedAt(): ?\DateTimeInterface
  130.     {
  131.         return $this->updated_at;
  132.     }
  133.     public function setUpdatedAt(\DateTimeInterface $updated_at): self
  134.     {
  135.         $this->updated_at $updated_at;
  136.         return $this;
  137.     }
  138.     public function getAmount()
  139.     {
  140.         return $this->amount;
  141.     }
  142.     public function setAmount($amount): self
  143.     {
  144.         $this->amount $amount;
  145.         return $this;
  146.     }
  147.     public function getMember(): ?Member
  148.     {
  149.         return $this->member;
  150.     }
  151.     public function setMember(?Member $member): self
  152.     {
  153.         $this->member $member;
  154.         return $this;
  155.     }
  156.     public function getPayout(): ?Payout
  157.     {
  158.         return $this->payout;
  159.     }
  160.     public function setPayout(?Payout $payout): self
  161.     {
  162.         $this->payout $payout;
  163.         return $this;
  164.     }
  165.     public function isTypeCam(): bool
  166.     {
  167.         /** @var BalanceDetail|null $detail */
  168.         $detail $this->balance_detail;
  169.         if (null === $detail) {
  170.             return false;
  171.         }
  172.         return BalanceDetailUsageType::CAM === $detail->getUsageType();
  173.     }
  174. }