<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Bundles\Instruments\Base\Entity\Forward;
use Doctrine\ORM\Mapping as ORM;
use App\Repository\CounterpartyRepository;
/**
* @ORM\Entity(repositoryClass=CounterpartyRepository::class)
*/
class Counterparty
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $name;
/**
* @ORM\ManyToOne(targetEntity=Customer::class, inversedBy="counterparties")
* @ORM\JoinColumn(nullable=false)
*/
private $Customer;
/**
* @ORM\Column(type="integer")
*/
private $creditLimit;
/**
* @ORM\Column(type="string", length=5)
*/
private $currency;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $status;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $otm1;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $otm2;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $otm3;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $variationMargin1;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $variationMargin2;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $variationMargin3;
/**
* @ORM\OneToMany(targetEntity=Forward::class, mappedBy="Counterparty")
*/
private $trades;
public function __construct()
{
$this->trades = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getCustomer(): ?Customer
{
return $this->Customer;
}
public function setCustomer(?Customer $Customer): self
{
$this->Customer = $Customer;
return $this;
}
public function getCreditLimit(): ?int
{
return $this->creditLimit;
}
public function setCreditLimit(int $creditLimit): self
{
$this->creditLimit = $creditLimit;
return $this;
}
public function getCurrency(): ?string
{
return $this->currency;
}
public function setCurrency(string $currency): self
{
$this->currency = $currency;
return $this;
}
public function getStatus(): ?bool
{
return $this->status;
}
public function setStatus(?bool $status): self
{
$this->status = $status;
return $this;
}
/**
* @return Collection<int>
*/
public function getTrades(): Collection
{
return $this->trades;
}
public function addTrade($trade): self
{
if (!$this->trades->contains($trade)) {
$this->trades[] = $trade;
$trade->setCounterparty($this);
}
return $this;
}
public function removeTrade( $trade): self
{
if ($this->trades->removeElement($trade)) {
// set the owning side to null (unless already changed)
if ($trade->getCounterparty() === $this) {
$trade->setCounterparty(null);
}
}
return $this;
}
public function __toString() {
return $this->getName();
}
/**
* @return mixed
*/
public function getOtm1() {
return $this->otm1;
}
/**
* @param mixed $otm1
*/
public function setOtm1($otm1): void {
$this->otm1 = $otm1;
}
/**
* @return mixed
*/
public function getOtm2() {
return $this->otm2;
}
/**
* @param mixed $otm2
*/
public function setOtm2($otm2): void {
$this->otm2 = $otm2;
}
/**
* @return mixed
*/
public function getOtm3() {
return $this->otm3;
}
/**
* @param mixed $otm3
*/
public function setOtm3($otm3): void {
$this->otm3 = $otm3;
}
/**
* @return mixed
*/
public function getVariationMargin1() {
return $this->variationMargin1;
}
/**
* @param mixed $variationMargin1
*/
public function setVariationMargin1($variationMargin1): void {
$this->variationMargin1 = $variationMargin1;
}
/**
* @return mixed
*/
public function getVariationMargin2() {
return $this->variationMargin2;
}
/**
* @param mixed $variationMargin2
*/
public function setVariationMargin2($variationMargin2): void {
$this->variationMargin2 = $variationMargin2;
}
/**
* @return mixed
*/
public function getVariationMargin3() {
return $this->variationMargin3;
}
/**
* @param mixed $variationMargin3
*/
public function setVariationMargin3($variationMargin3): void {
$this->variationMargin3 = $variationMargin3;
}
}