src/Entity/Participant.php line 11

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use App\Util\TokenGenerator;
  5. /**
  6.  * @ORM\Entity(repositoryClass="App\Repository\ParticipantRepository")
  7.  */
  8. class Participant {
  9.     const PAYMENT_STATUS_PENDING 'pending';
  10.     const PAYMENT_STATUS_PROCESSING 'processing';
  11.     const PAYMENT_STATUS_PAID 'paid';
  12.     const PAYMENT_STATUS_FAILED 'failed';
  13.     const PAYMENT_STATUS_REFUNDED 'refunded';
  14.     /**
  15.      * @var integer The id of the participant
  16.      * @ORM\Id()
  17.      * @ORM\GeneratedValue()
  18.      * @ORM\Column(type="integer")
  19.      */
  20.     private $id;
  21.     /**
  22.      * @ORM\ManyToOne(targetEntity="Competition", inversedBy="participants")
  23.      * @ORM\JoinColumn(name="competition_id", referencedColumnName="id", nullable=false)
  24.      */
  25.     private $competition;
  26.     /**
  27.      * @var string The name of the participant
  28.      * @ORM\Column(name="full_name", type="string", length=100)
  29.      */
  30.     private $name;
  31.     /**
  32.      * @var string The name of the team
  33.      * @ORM\Column(name="team_name", type="string", length=100)
  34.      */
  35.     private $teamName;
  36.     /**
  37.      * @var string The email of the participant
  38.      * @ORM\Column(type="string", length=100)
  39.      */
  40.     private $email;
  41.     
  42.     /**
  43.      * @var string The phone number of the participant
  44.      * @ORM\Column(type="string", length=30, nullable=true)
  45.      */
  46.     private $phoneNumber;
  47.     /**
  48.      * @ORM\Column(name="message", type="text", nullable=true)
  49.      */
  50.     private $message;
  51.     /**
  52.      * @ORM\Column(name="down_payment_amount", type="integer", nullable=false)
  53.      */
  54.     private $downPaymentAmount;
  55.     /**
  56.      * @var string The unique hash identifier of the user
  57.      * @ORM\Column(name="hash", type="string", length=20, unique=true)
  58.      */
  59.     private $hash;
  60.     /**
  61.      * @ORM\Column(name="payment_status", type="string", length=25, nullable=false)
  62.      */
  63.     private $paymentStatus self::PAYMENT_STATUS_PENDING;
  64.     /**
  65.      * @ORM\Column(name="payment_message", type="string", length=255, nullable=true)
  66.      */
  67.     private $paymentMessage;
  68.     /**
  69.      * @ORM\Column(name="charge_id", type="string", length=50, nullable=true)
  70.      */
  71.     private $chargeId;
  72.     /**
  73.      * @var \DateTime
  74.      * @ORM\Column(type="datetime", name="created_at")
  75.      */
  76.     private $createdAt;
  77.     public function __construct() {
  78.         $this->createdAt = new \DateTime();
  79.         $this->hash TokenGenerator::generateToken(7);
  80.     }
  81.     public function __toString() {
  82.         return (string) $this->getName();
  83.     }
  84.     public function getId() {
  85.         return $this->id;
  86.     }
  87.     public function getCompetition() {
  88.         return $this->competition;
  89.     }
  90.     public function setCompetition($competition) {
  91.         $this->competition $competition;
  92.         return $this;
  93.     }
  94.     public function getName() {
  95.         return $this->name;
  96.     }
  97.     public function setName($name) {
  98.         $this->name $name;
  99.         return $this;
  100.     }
  101.     public function getTeamName() {
  102.         return $this->teamName;
  103.     }
  104.     public function setTeamName($teamName) {
  105.         $this->teamName $teamName;
  106.         return $this;
  107.     }
  108.     public function getEmail() {
  109.         return $this->email;
  110.     }
  111.     public function setEmail($email) {
  112.         $this->email $email;
  113.         return $this;
  114.     }
  115.     
  116.     public function getPhoneNumber() {
  117.         return $this->phoneNumber;
  118.     }
  119.     public function setPhoneNumber($phoneNumber) {
  120.         $this->phoneNumber $phoneNumber;
  121.         return $this;
  122.     }
  123.     public function getMessage() {
  124.         return $this->message;
  125.     }
  126.     public function setMessage($message) {
  127.         $this->message $message;
  128.         return $this;
  129.     }
  130.     public function getDownPaymentAmount() {
  131.         return $this->downPaymentAmount;
  132.     }
  133.     public function setDownPaymentAmount($downPaymentAmount) {
  134.         $this->downPaymentAmount $downPaymentAmount;
  135.         return $this;
  136.     }
  137.     public function getHash() {
  138.         return $this->hash;
  139.     }
  140.     public function setHash($hash) {
  141.         $this->hash $hash;
  142.         return $this;
  143.     }
  144.     public function getPaymentStatus() {
  145.         return $this->paymentStatus;
  146.     }
  147.     public function getPaymentMessage() {
  148.         return $this->paymentMessage;
  149.     }
  150.     public function getChargeId() {
  151.         return $this->chargeId;
  152.     }
  153.     public function setPaymentStatus($paymentStatus) {
  154.         $this->paymentStatus $paymentStatus;
  155.         return $this;
  156.     }
  157.     public function setPaymentMessage($paymentMessage) {
  158.         $this->paymentMessage $paymentMessage;
  159.         return $this;
  160.     }
  161.     public function setChargeId($chargeId) {
  162.         $this->chargeId $chargeId;
  163.         return $this;
  164.     }
  165.     public function getCreatedAt(): \DateTime {
  166.         return $this->createdAt;
  167.     }
  168.     public function setCreatedAt(\DateTime $createdAt) {
  169.         $this->createdAt $createdAt;
  170.         return $this;
  171.     }
  172.     public function isPaymentPaid() {
  173.         return $this->paymentStatus === self::PAYMENT_STATUS_PAID;
  174.     }
  175.     public function isPaymentPending() {
  176.         return $this->paymentStatus === self::PAYMENT_STATUS_PENDING;
  177.     }
  178. }