<?php
namespace App\Entity;
use App\Dictionary\BalanceType;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\JoinColumn;
use Doctrine\ORM\Mapping\ManyToOne;
use JMS\Serializer\Annotation\Groups;
/**
* @ORM\Table("BalanceMember")
*
* @ORM\Entity(repositoryClass="App\Repository\BalanceMemberRepository")
*/
class BalanceMember
{
/**
* @ORM\Id()
*
* @ORM\GeneratedValue()
*
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Payment", inversedBy="balance_members")
*
* @ORM\JoinColumn(name="payment_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $payment;
/**
* @ManyToOne(targetEntity="App\Entity\Member", inversedBy="balance_member")
*
* @JoinColumn(name="member_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $member;
/**
* @Groups({"balancememberstats"})
*
* @ORM\Column(type="smallint")
*/
private $type;
/**
* @Groups({"balancememberstats"})
*
* @ORM\Column(type="decimal", precision=10)
*/
private $amount = 0;
/**
* @Groups({"balancememberstats"})
*
* @ORM\Column(type="datetime")
*/
private $created_at;
/**
* @ORM\Column(type="datetime")
*/
private $updated_at;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\BalanceDetail", cascade={"persist"})
*
* @ORM\JoinColumn(name="balance_detail_id", referencedColumnName="id", onDelete="SET NULL")
*/
private $balance_detail;
public function __construct()
{
$this->setCreatedAt(new \DateTime());
$this->setUpdatedAt(new \DateTime());
}
public function getId()
{
return $this->id;
}
public function getPayment(): ?Payment
{
return $this->payment;
}
public function setPayment(?Payment $payment): self
{
$this->payment = $payment;
return $this;
}
public function getMember(): ?Member
{
return $this->member;
}
public function setMember(Member $member): self
{
$this->member = $member;
return $this;
}
public function getType(): ?int
{
return $this->type;
}
public function setType(int $type): self
{
$this->type = $type;
return $this;
}
public function getAmount()
{
return $this->amount;
}
public function setAmount($amount): self
{
$this->amount = $amount;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->created_at;
}
public function setCreatedAt(\DateTimeInterface $created_at): self
{
$this->created_at = $created_at;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updated_at;
}
public function setUpdatedAt(\DateTimeInterface $updated_at): self
{
$this->updated_at = $updated_at;
return $this;
}
public function getBalanceDetail(): ?BalanceDetail
{
return $this->balance_detail;
}
public function setBalanceDetail(BalanceDetail $balanceDetail): self
{
$this->balance_detail = $balanceDetail;
return $this;
}
public function isTypeOutput(): bool
{
return BalanceType::OUTPUT === $this->type;
}
}