src/Domain/Entity/TroubleshootingRequest.php line 58

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Domain\Entity;
  4. use ApiPlatform\Metadata\ApiResource;
  5. use ApiPlatform\Metadata\Delete;
  6. use ApiPlatform\Metadata\Get;
  7. use ApiPlatform\Metadata\GetCollection;
  8. use ApiPlatform\Metadata\Post;
  9. use ApiPlatform\Metadata\Put;
  10. use App\Application\ApiResources\State\Processor\TroubleshootingRequestCreateProcessor;
  11. use App\Application\ApiResources\State\Processor\TroubleshootingRequestEditProcessor;
  12. use App\Application\Controller\Api\TroubleshootingRequest\GetAllAction;
  13. use App\Application\Controller\Api\TroubleshootingRequest\GetBanStatusAction;
  14. use App\Application\Controller\Api\TroubleshootingRequest\GetDetailsAction;
  15. use App\Application\Controller\Api\TroubleshootingRequest\GetMineAction;
  16. use App\Domain\Entity\Behavior\Identifiable;
  17. use Gedmo\SoftDeleteable\Traits\SoftDeleteable;
  18. use Gedmo\Timestampable\Traits\Timestampable;
  19. use Symfony\Component\Serializer\Annotation\Groups;
  20. #[ApiResource(
  21.     operations: [
  22.         new Delete(security"is_granted('ROLE_ADMIN')"),
  23.         new GetCollection(
  24.             controllerGetAllAction::class,
  25.             security"is_granted('ROLE_ADMIN')",
  26.         ),
  27.         new GetCollection(
  28.             uriTemplate'/troubleshooting_requests/ban_status',
  29.             controllerGetBanStatusAction::class,
  30.             security"is_granted('ROLE_USER')"
  31.         ),
  32.         new GetCollection(
  33.             uriTemplate'/troubleshooting_requests/mine',
  34.             controllerGetMineAction::class,
  35.             security"is_granted('ROLE_USER')"
  36.         ),
  37.         new Get(
  38.             uriTemplate'/troubleshooting_requests/{uuid}',
  39.             controllerGetDetailsAction::class,
  40.             security"is_granted('ROLE_ADMIN')",
  41.             name'get_details'
  42.         ),
  43.         new Post(
  44.             processorTroubleshootingRequestCreateProcessor::class,
  45.         ),
  46.         new Put(
  47.             processorTroubleshootingRequestEditProcessor::class,
  48.         ),
  49.     ],
  50.     normalizationContext: ['groups' => ['troubleshooting_request_read']],
  51.     denormalizationContext: ['groups' => ['troubleshooting_request_write']],
  52. )]
  53. class TroubleshootingRequest
  54. {
  55.     use Identifiable;
  56.     use SoftDeleteable;
  57.     use Timestampable;
  58.     public ?\DateTime $zhistUpdate null;
  59.     #[Groups(['troubleshooting_request_read'])]
  60.     private Person $person;
  61.     #[Groups(['troubleshooting_request_read'])]
  62.     private int $status;
  63.     #[Groups(['troubleshooting_request_read''troubleshooting_request_write'])]
  64.     public ?string $result;
  65.     #[Groups(['troubleshooting_request_read''troubleshooting_request_write'])]
  66.     public ?int $review;
  67.     #[Groups(['troubleshooting_request_read''troubleshooting_request_write'])]
  68.     public ?string $comment;
  69.     #[Groups(['troubleshooting_request_read'])]
  70.     private ?string $jsonAiResponse;
  71.     #[Groups(['troubleshooting_request_read''troubleshooting_request_write'])]
  72.     private ?string $requestText;
  73.     #[Groups(['troubleshooting_request_read''troubleshooting_request_write'])]
  74.     public $uuid;
  75.     #[Groups(['troubleshooting_request_read''troubleshooting_request_write'])]
  76.     public ?string $language;
  77.     public function __construct(?string $requestText null)
  78.     {
  79.         $this->requestText $requestText;
  80.     }
  81.     // Getter and setter methods...
  82.     public function getRequestText(): ?string
  83.     {
  84.         return $this->requestText;
  85.     }
  86.     public function setRequestText(string $requestText): void
  87.     {
  88.         $this->requestText $requestText;
  89.     }
  90.     public function getPerson(): Person
  91.     {
  92.         return $this->person;
  93.     }
  94.     public function setPerson(Person $person): void
  95.     {
  96.         $this->person $person;
  97.     }
  98.     public function getStatus(): int
  99.     {
  100.         return $this->status;
  101.     }
  102.     public function setStatus(int $status): void
  103.     {
  104.         $this->status $status;
  105.     }
  106.     public function getResult(): string
  107.     {
  108.         return $this->result;
  109.     }
  110.     public function setResult(string $result): void
  111.     {
  112.         $this->result $result;
  113.     }
  114.     public function getReview(): ?int
  115.     {
  116.         return $this->review;
  117.     }
  118.     public function setReview(?int $review): void
  119.     {
  120.         $this->review $review;
  121.     }
  122.     public function getComment(): ?string
  123.     {
  124.         return $this->comment;
  125.     }
  126.     public function setComment(?string $comment): void
  127.     {
  128.         $this->comment $comment;
  129.     }
  130.     public function getJsonAiResponse(): ?string
  131.     {
  132.         return $this->jsonAiResponse;
  133.     }
  134.     public function setJsonAiResponse(?string $jsonAiResponse): void
  135.     {
  136.         $this->jsonAiResponse $jsonAiResponse;
  137.     }
  138.     #[Groups(['troubleshooting_request_read'])]
  139.     public function getCreatedAt(): ?\DateTime
  140.     {
  141.         return $this->createdAt;
  142.     }
  143.     #[Groups(['troubleshooting_request_read'])]
  144.     public function getId(): ?int
  145.     {
  146.         return $this->id;
  147.     }
  148.     public function getLanguage(): ?string
  149.     {
  150.         return $this->language;
  151.     }
  152.     public function setLanguage(?string $language): void
  153.     {
  154.         $this->language $language;
  155.     }
  156. }