vendor/crosiersource/crosierlib-radx/src/Entity/Estoque/Unidade.php line 54

Open in your IDE?
  1. <?php
  2. namespace CrosierSource\CrosierLibRadxBundle\Entity\Estoque;
  3. use ApiPlatform\Core\Annotation\ApiFilter;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\OrderFilter;
  6. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
  7. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\BooleanFilter;
  8. use ApiPlatform\Core\Serializer\Filter\PropertyFilter;
  9. use CrosierSource\CrosierLibBaseBundle\Doctrine\Annotations\EntityHandler;
  10. use CrosierSource\CrosierLibBaseBundle\Doctrine\Annotations\NotUppercase;
  11. use CrosierSource\CrosierLibBaseBundle\Doctrine\Annotations\TrackedEntity;
  12. use CrosierSource\CrosierLibBaseBundle\Entity\EntityId;
  13. use CrosierSource\CrosierLibBaseBundle\Entity\EntityIdTrait;
  14. use Doctrine\ORM\Mapping as ORM;
  15. use Symfony\Component\Serializer\Annotation\Groups;
  16. /**
  17.  * @ApiResource(
  18.  *     normalizationContext={"groups"={"unidade","entityId"},"enable_max_depth"=true},
  19.  *     denormalizationContext={"groups"={"unidade"},"enable_max_depth"=true},
  20.  *
  21.  *     itemOperations={
  22.  *          "get"={"path"="/est/unidade/{id}", "security"="is_granted('ROLE_ESTOQUE')"},
  23.  *          "put"={"path"="/est/unidade/{id}", "security"="is_granted('ROLE_ESTOQUE')"},
  24.  *          "delete"={"path"="/est/unidade/{id}", "security"="is_granted('ROLE_ADMIN')"}
  25.  *     },
  26.  *     collectionOperations={
  27.  *          "get"={"path"="/est/unidade", "security"="is_granted('ROLE_ESTOQUE')"},
  28.  *          "post"={"path"="/est/unidade", "security"="is_granted('ROLE_ESTOQUE')"}
  29.  *     },
  30.  *
  31.  *     attributes={
  32.  *          "pagination_items_per_page"=10,
  33.  *          "formats"={"jsonld", "csv"={"text/csv"}}
  34.  *     }
  35.  * )
  36.  * @ApiFilter(PropertyFilter::class)
  37.  *
  38.  * @ApiFilter(SearchFilter::class, properties={"nome": "partial", "documento": "exact", "id": "exact"})
  39.  * @ApiFilter(OrderFilter::class, properties={"id", "documento", "nome", "updated"}, arguments={"orderParameterName"="order"})
  40.  * @ApiFilter(BooleanFilter::class, properties={"atual": "exact"})
  41.  *
  42.  *
  43.  * @EntityHandler(entityHandlerClass="CrosierSource\CrosierLibRadxBundle\EntityHandler\Estoque\UnidadeEntityHandler")
  44.  *
  45.  * @ORM\Entity(repositoryClass="CrosierSource\CrosierLibRadxBundle\Repository\Estoque\UnidadeRepository")
  46.  * @ORM\Table(name="est_unidade")
  47.  * @TrackedEntity
  48.  *
  49.  * @author Carlos Eduardo Pauluk
  50.  */
  51. class Unidade implements EntityId
  52. {
  53.     use EntityIdTrait;
  54.     /**
  55.      *
  56.      * @ORM\Column(name="descricao", type="string")
  57.      * @Groups("unidade")
  58.      * @var null|string
  59.      */
  60.     public ?string $descricao null;
  61.     /**
  62.      *
  63.      * @ORM\Column(name="label", type="string")
  64.      * @Groups("unidade")
  65.      * @var null|string
  66.      */
  67.     public ?string $label null;
  68.     /**
  69.      *
  70.      * @ORM\Column(name="casas_decimais", type="integer")
  71.      * @Groups("unidade")
  72.      * @var null|integer
  73.      */
  74.     public ?int $casasDecimais null;
  75.     /**
  76.      *
  77.      * @ORM\Column(name="json_data", type="json")
  78.      * @var null|array
  79.      * @NotUppercase()
  80.      * @Groups("unidade")
  81.      */
  82.     public ?array $jsonData null;
  83.     /**
  84.      *
  85.      * @ORM\Column(name="atual", type="boolean")
  86.      * @Groups("unidade")
  87.      *
  88.      * @var bool|null
  89.      */
  90.     public ?bool $atual false;
  91. }