src/Entity/SatisfactionSurveys/SatisfactionSurveyCustomerResponseAnswer.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\Entity\SatisfactionSurveys;
  3. use ApiPlatform\Core\Annotation\ApiResource;
  4. use App\Annotation\SiteAware;
  5. use App\Entity\AbstractBase;
  6. use App\Entity\Interfaces\SiteInterface;
  7. use App\Entity\Traits\SiteTrait;
  8. use App\Repository\SatisfactionSurveys\SatisfactionSurveyCustomerResponseAnswerRepository;
  9. use DateTimeInterface;
  10. use Doctrine\ORM\Mapping as ORM;
  11. use Gedmo\Mapping\Annotation as Gedmo;
  12. use Symfony\Component\Serializer\Annotation\Groups;
  13. /**
  14.  * @ApiResource(
  15.  *     shortName="satisfaction-survey-customer-response-answer",
  16.  *     normalizationContext={"groups"={"api:read", "satisfaction_survey_customer_response_anwser:read"}},
  17.  *     denormalizationContext={"groups"={"satisfaction_survey_customer_response_anwser:write"}},
  18.  *     collectionOperations={"get"},
  19.  *     itemOperations={"get", "put"}
  20.  * ).
  21.  *
  22.  * @ORM\Table(name="vulco_satisfaction_survey_customer_response_answer", indexes={@ORM\Index(name="satisfaction_survey_customer_response_answer_site_idx", columns={"site"})})
  23.  * @ORM\Entity(repositoryClass=SatisfactionSurveyCustomerResponseAnswerRepository::class)
  24.  * @Gedmo\SoftDeleteable(fieldName="removedAt", timeAware=false)
  25.  * @SiteAware(siteFieldName="site")
  26.  */
  27. class SatisfactionSurveyCustomerResponseAnswer extends AbstractBase implements SiteInterface
  28. {
  29.     use SiteTrait;
  30.     /**
  31.      * @ORM\ManyToOne(targetEntity="SatisfactionSurveyQuestion", inversedBy="answers")
  32.      * @Groups({"api:write", "satisfaction_survey_customer_response:write"})
  33.      */
  34.     private SatisfactionSurveyQuestion $question;
  35.     /**
  36.      * @ORM\ManyToOne(targetEntity="SatisfactionSurveyCustomerResponse", inversedBy="answers")
  37.      * @Groups({"api:write", "satisfaction_survey_customer_response:write"})
  38.      */
  39.     private SatisfactionSurveyCustomerResponse $response;
  40.     /**
  41.      * @ORM\Column(type="datetime", nullable=false)
  42.      * @Groups({"api:write", "satisfaction_survey_customer_response:write"})
  43.      */
  44.     private DateTimeInterface $moment;
  45.     /**
  46.      * @ORM\Column(type="integer", nullable=false, options={"default": 0})
  47.      * @Groups({"api:write", "satisfaction_survey_customer_response:write"})
  48.      */
  49.     private int $value 0;
  50.     public function getQuestion(): SatisfactionSurveyQuestion
  51.     {
  52.         return $this->question;
  53.     }
  54.     public function setQuestion(SatisfactionSurveyQuestion $question): self
  55.     {
  56.         $this->question $question;
  57.         return $this;
  58.     }
  59.     public function getResponse(): SatisfactionSurveyCustomerResponse
  60.     {
  61.         return $this->response;
  62.     }
  63.     public function setResponse(SatisfactionSurveyCustomerResponse $response): self
  64.     {
  65.         $this->response $response;
  66.         return $this;
  67.     }
  68.     public function getMoment(): DateTimeInterface
  69.     {
  70.         return $this->moment;
  71.     }
  72.     public function getMomentString(): string
  73.     {
  74.         return $this->getDateTimeAsString($this->getMoment());
  75.     }
  76.     public function setMoment(DateTimeInterface $moment): self
  77.     {
  78.         $this->moment $moment;
  79.         return $this;
  80.     }
  81.     public function getValue(): int
  82.     {
  83.         return $this->value;
  84.     }
  85.     public function setValue(int $value): self
  86.     {
  87.         $this->value $value;
  88.         return $this;
  89.     }
  90. }