<?php
namespace App\Entity;
use App\Repository\AdmissionUserRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
#[ORM\Entity(repositoryClass: AdmissionUserRepository::class)]
class AdmissionUser
{
public const STATE_REGISTERED = "R";
public const STATE_CONFIRM = "C";
public const STATE_PENDING = "P";
public const STATE_FILE_UPLOADED = 'D';
public const STATE_SPEAKER = '2';
public const STATE_POSTER = '3';
public const STATE_DECLINE = 'F';
public const PUB_STATE_NEW = 'new';
public const PUB_STATE_PENDING = 'pending';
public const PUB_STATE_AE = 'pending_ae';
public const PUB_STATE_FE = 'pending_fe';
public const PUB_STATE_REVIEWER = 'pending_r';
public const PUB_STATE_DIRECTOR = 'pending_d';
public const PUB_STATE_APPROVE = 'approve';
public const PUB_STATE_DECLINE = 'decline';
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
#[Groups(['list','au','p','r'])]
private ?int $id;
#[ORM\ManyToOne(targetEntity: Admission::class)]
#[Groups(['list','au','p','r'])]
private ?Admission $admission;
#[ORM\ManyToOne(targetEntity: User::class)]
#[Groups(['list','au','p','r'])]
private ?User $user;
#[ORM\Column(type: 'string', length: 30, nullable: true)]
#[Groups(['list','au','p','r'])]
private ?string $satCode;
#[ORM\ManyToOne(targetEntity: GlobalConstant::class)]
#[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
#[Groups(['list','au','p'])]
private ?GlobalConstant $infoChannel;
#[ORM\Column(type: 'integer', nullable: true)]
#[Groups(['list','au','p'])]
private ?int $type;
#[ORM\Column(type: 'string', length: 1)]
#[Groups(['list','au','p','r'])]
private ?string $state;
#[ORM\Column(type: 'string', length: 20, nullable: true)]
#[Groups(['list','au','p','r'])]
private ?string $pubState;
#[ORM\Column(type: 'datetime')]
#[Groups(['list','au','p','r'])]
private ?\DateTimeInterface $timeCreated;
#[ORM\Column(type: 'datetime', nullable: true)]
#[Groups(['list','au','p','r'])]
private ?\DateTimeInterface $timeUpdated;
#[ORM\ManyToOne(targetEntity: Payment::class)]
#[Groups(['list','au'])]
private ?Payment $paymentRegisterFee;
#[ORM\ManyToOne(targetEntity: Payment::class)]
#[Groups(['list','au'])]
private ?Payment $paymentCredit;
#[ORM\ManyToOne(targetEntity: AdmissionRegister::class)]
#[Groups(['list','au','p'])]
private ?AdmissionRegister $admissionRegister;
#[ORM\ManyToOne(targetEntity: AdmissionUserComment::class)]
#[Groups(['list','au','p'])]
private ?AdmissionUserComment $lastComment;
#[ORM\ManyToOne(targetEntity: AdmissionDiscount::class)]
#[Groups(['list','au','p'])]
private ?AdmissionDiscount $admissionDiscount;
#[ORM\Column(type: 'integer', nullable: true)]
#[Groups(['list','au','p','r'])]
private ?int $feId;
public function getId(): ?int
{
return $this->id;
}
public function getSatCode(): ?string
{
return $this->satCode;
}
public function setSatCode(string $satCode): self
{
$this->satCode = $satCode;
return $this;
}
public function getState(): ?string
{
return $this->state;
}
public function setState(string $state): self
{
$this->state = $state;
return $this;
}
public function getTimeCreated(): ?\DateTimeInterface
{
return $this->timeCreated;
}
public function setTimeCreated(\DateTimeInterface $timeCreated): self
{
$this->timeCreated = $timeCreated;
return $this;
}
public function getAdmission(): ?Admission
{
return $this->admission;
}
public function setAdmission(?Admission $admission): self
{
$this->admission = $admission;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
public function getInfoChannel(): ?GlobalConstant
{
return $this->infoChannel;
}
public function setInfoChannel(?GlobalConstant $infoChannel): self
{
$this->infoChannel = $infoChannel;
return $this;
}
public function getPaymentRegisterFee(): ?Payment
{
return $this->paymentRegisterFee;
}
public function setPaymentRegisterFee(?Payment $paymentRegisterFee): self
{
$this->paymentRegisterFee = $paymentRegisterFee;
return $this;
}
public function getPaymentCredit(): ?Payment
{
return $this->paymentCredit;
}
public function setPaymentCredit(?Payment $paymentCredit): self
{
$this->paymentCredit = $paymentCredit;
return $this;
}
public function getAdmissionRegister(): ?AdmissionRegister
{
return $this->admissionRegister;
}
public function setAdmissionRegister(?AdmissionRegister $admissionRegister): self
{
$this->admissionRegister = $admissionRegister;
return $this;
}
public function getLastComment(): ?AdmissionUserComment
{
return $this->lastComment;
}
public function setLastComment(?AdmissionUserComment $lastComment): self
{
$this->lastComment = $lastComment;
return $this;
}
public function getAdmissionDiscount(): ?AdmissionDiscount
{
return $this->admissionDiscount;
}
public function setAdmissionDiscount(?AdmissionDiscount $admissionDiscount): self
{
$this->admissionDiscount = $admissionDiscount;
return $this;
}
public function getType(): ?int
{
return $this->type;
}
public function setType(?int $type): self
{
$this->type = $type;
return $this;
}
public function getPubState(): ?string
{
return $this->pubState;
}
public function setPubState(?string $pubState): self
{
$this->pubState = $pubState;
return $this;
}
public function getFeId(): ?int
{
return $this->feId;
}
public function setFeId(?int $feId): self
{
$this->feId = $feId;
return $this;
}
public function getTimeUpdated(): ?\DateTimeInterface
{
return $this->timeUpdated;
}
public function setTimeUpdated(\DateTimeInterface $timeUpdated): self
{
$this->timeUpdated = $timeUpdated;
return $this;
}
}