<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
//use Doctrine\ORM\Mapping\UniqueConstraint;
use Orc\SaasBundle\Entity\Client;
use App\Entity\Marketer;
/**
* @ORM\Entity
* @ORM\Table(name="marketer_client_request",
* uniqueConstraints={
* @ORM\UniqueConstraint(
* name="marketer_client",
* columns={"marketer_id", "client_id"}
* )
* }
* )
*/
class MarketerClientRequest {
const STATUS_PENDING = 0;
const STATUS_ACCEPTED = 1;
const STATUS_DENIED = 2;
const STATUS_REVOKED = 3;
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Marketer")
* @ORM\JoinColumn(name="marketer_id", referencedColumnName="id")
*/
protected $marketer;
/**
* @ORM\ManyToOne(targetEntity="Orc\SaasBundle\Entity\Client")
* @ORM\JoinColumn(name="client_id", referencedColumnName="id")
*/
protected $client;
/**
* @ORM\Column(type="string")
*/
protected $requestToken;
/**
* @ORM\Column(type="datetime", nullable=false)
*/
protected $timeSent;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
protected $timeAccepted;
/**
* @ORM\Column(type="integer")
*/
protected $accepted = self::STATUS_PENDING;
/**
* @ORM\Column(type="boolean")
*/
protected $deleted = false;
public function __construct()
{
$this->requestToken = md5(time());
}
/***********************
* getters and setters
*****************/
public function getId() : int
{
return $this->id;
}
public function getMarketer() : Marketer
{
return $this->marketer;
}
public function getClient() : Client
{
return $this->client;
}
public function getRequestToken() : string
{
return $this->requestToken;
}
public function getTimeSent() : \DateTime
{
return $this->timeSent;
}
public function getTimeAccepted() : \DateTime
{
return $this->timeAccepted;
}
public function getAccepted() : int
{
return $this->accepted;
}
public function isDeleted() : bool
{
return $this->deleted;
}
public function setMarketer(Marketer $marketer): MarketerClientRequest
{
$this->marketer = $marketer;
return $this;
}
public function setClient(Client $client): MarketerClientRequest {
$this->client = $client;
return $this;
}
public function setRequestToken(string $requestToken): MarketerClientRequest
{
$this->requestToken = $requestToken;
return $this;
}
public function setTimeSent(\DateTime $timeSent): MarketerClientRequest
{
$this->timeSent = $timeSent;
return $this;
}
public function setTimeAccepted(\DateTime $timeAccepted): MarketerClientRequest
{
$this->timeAccepted = $timeAccepted;
return $this;
}
public function setAccepted(int $accepted): MarketerClientRequest
{
$this->accepted = $accepted;
return $this;
}
public function setDeleted(bool $deleted): MarketerClientRequest {
$this->deleted = $deleted;
return $this;
}
static function getStatuses()
{
return [
self::STATUS_PENDING => 'pending',
self::STATUS_ACCEPTED => 'accepted',
self::STATUS_DENIED => 'denied',
self::STATUS_REVOKED => 'revoked',
];
}
}