<?php
namespace App\Entity;
use ApiPlatform\Core\Annotation\ApiProperty;
use ApiPlatform\Core\Annotation\ApiResource;
use App\Repository\FaqRepository;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Timestampable\Traits\TimestampableEntity;
use Ramsey\Uuid\Doctrine\UuidGenerator;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Serializer\Annotation\SerializedName;
/**
* @ApiResource(
* attributes={
* "pagination_items_per_page"=50,
* "normalization_context"={"groups"={
* "Faq:output",
* "Faq:io"
* }},
* "denormalization_context"={"groups"={
* "Faq:input",
* "Faq:io"
* }},
* "order"={"position": "ASC"},
* },
* collectionOperations={
* "get"={
* "method"="GET",
* "path"="/public/faqs",
* }
* },
* itemOperations={
* "get"={
* "method"="GET"
* },
* }
* )
*
* @ORM\Entity(repositoryClass=FaqRepository::class)
*/
class Faq
{
/**
* Hook timestampable behavior
* updates createdAt, updatedAt fields
*/
use TimestampableEntity;
/**
* @ORM\Id
* @ORM\Column(type="uuid", unique=true)
* @ORM\GeneratedValue(strategy="CUSTOM")
* @ORM\CustomIdGenerator(class=UuidGenerator::class)
* @SerializedName("id")
* @ApiProperty(identifier=true)
* @Groups({"Faq:output"})
*/
private string $id;
/**
* @ORM\Column(type="string", length=255)
* @SerializedName("question")
* @Groups({"Faq:output"})
*/
private ?string $question;
/**
* @ORM\Column(type="text")
* @SerializedName("answer")
* @Groups({"Faq:output"})
*/
private ?string $answer;
/**
* @ORM\Column(type="integer", options={"default": 0})
* @SerializedName("position")
* @Groups({"Faq:output"})
*/
private ?int $position;
/**
* @return string
*/
public function getId(): ?string
{
return $this->id;
}
public function getQuestion(): ?string
{
return $this->question;
}
public function setQuestion(string $question): self
{
$this->question = $question;
return $this;
}
public function getAnswer(): ?string
{
return $this->answer;
}
public function setAnswer(string $answer): self
{
$this->answer = $answer;
return $this;
}
public function getPosition(): ?int
{
return $this->position;
}
public function setPosition(?int $position): Faq
{
$this->position = $position;
return $this;
}
}