src/Containers/CrmSection/EquipmentContainer/Entities/FileEntity.php line 48

Open in your IDE?
  1. <?php
  2. namespace App\Containers\CrmSection\EquipmentContainer\Entities;
  3. use ApiPlatform\Metadata\ApiResource;
  4. use ApiPlatform\Metadata\ApiProperty;
  5. use ApiPlatform\Metadata\Delete;
  6. use ApiPlatform\Metadata\Get;
  7. use ApiPlatform\Metadata\GetCollection;
  8. use ApiPlatform\Metadata\Post;
  9. use ApiPlatform\Metadata\ApiFilter;
  10. use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
  11. use ApiPlatform\Doctrine\Orm\Filter\NumericFilter;
  12. use ApiPlatform\Doctrine\Orm\Filter\RangeFilter;
  13. use ApiPlatform\Doctrine\Orm\Filter\DateFilter;
  14. use ApiPlatform\Doctrine\Orm\Filter\OrderFilter;
  15. use Doctrine\DBAL\Types\Types;
  16. use Doctrine\ORM\Mapping as ORM;
  17. use Symfony\Component\HttpFoundation\File\File;
  18. use Symfony\Component\Serializer\Annotation\Groups;
  19. use Symfony\Component\Validator\Constraints as Assert;
  20. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  21. use Gedmo\Mapping\Annotation as Gedmo;
  22. use App\Containers\CrmSection\EquipmentContainer\Data\Repositories\FileRepository;
  23. #[ApiResource(
  24.     normalizationContext: ['groups' => ['read''equipments_object:read']], 
  25.     types: ['https://schema.org/MediaObject'],
  26.     operations: [
  27.         new Get(
  28.             uriTemplate'/equipments_files/{id}'requirements: ['id' => '\d+'],
  29.             security"is_granted('ROLE_ADMIN') or is_granted('ROLE_USER_CLIENT') or is_granted('ROLE_USER_GUEST') or is_granted('ROLE_READONLY')"
  30.         ),
  31.         new GetCollection(
  32.             uriTemplate'/equipments_files'
  33.         ),
  34.     ],
  35.     shortName'CRM_Equipments'
  36. )]
  37. #[ApiFilter(SearchFilter::class, properties: ['id' => 'exact'])]
  38. #[ApiFilter(NumericFilter::class, properties: ['id'])]
  39. #[ApiFilter(RangeFilter::class, properties: ['id'])]
  40. #[ApiFilter(DateFilter::class, properties: ['createdAt'])]
  41. #[ApiFilter(OrderFilter::class)]
  42. #[ORM\Entity(repositoryClassFileRepository::class)]
  43. #[ORM\Table(name'`crm_equipments_files`')]
  44. #[Vich\Uploadable]
  45. class FileEntity
  46. {
  47.     #[ORM\Id]
  48.     #[ORM\GeneratedValue]
  49.     #[ORM\Column(typeTypes::INTEGER)]
  50.     #[Groups(['read'])]
  51.     private ?int $id null;
  52.     #[ApiProperty(types: ['https://schema.org/contentUrl'])]
  53.     #[Groups(['read''equipments_object:read'])]
  54.     public ?string $contentUrl null;
  55.     #[Vich\UploadableField(mapping'equipments_object'fileNameProperty'filePath')]
  56.     #[Assert\NotNull(groups: ['read''equipments_object_create'])]
  57.     public ?File $file null;
  58.     #[ORM\Column(nullabletrue)] 
  59.     public ?string $filePath null;
  60.     #[Gedmo\Timestampable(on'create')]
  61.     #[ORM\Column(typeTypes::DATETIME_IMMUTABLE)]
  62.     public $createdAt;
  63.     #[Gedmo\Timestampable(on'update')]
  64.     #[ORM\Column(typeTypes::DATETIME_IMMUTABLE)]
  65.     protected $updatedAt;
  66.     
  67.     public function getId()
  68.     {
  69.         return $this->id;
  70.     }
  71. }