src/Entity/Ecommerce/MercadoLivreItem.php line 69

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Ecommerce;
  3. use ApiPlatform\Core\Annotation\ApiFilter;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\BooleanFilter;
  6. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\OrderFilter;
  7. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
  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\Entity\EntityId;
  12. use CrosierSource\CrosierLibBaseBundle\Entity\EntityIdTrait;
  13. use Doctrine\ORM\Mapping as ORM;
  14. use Symfony\Component\Serializer\Annotation\Groups;
  15. use Symfony\Component\Validator\Constraints as Assert;
  16. /**
  17.  * Entidade 'MercadoLivreItem'.
  18.  *
  19.  * @ApiResource(
  20.  *     normalizationContext={"groups"={"mercadoLivreItem", "entityId"},"enable_max_depth"=true},
  21.  *     denormalizationContext={"groups"={"mercadoLivreItem"},"enable_max_depth"=true},
  22.  *
  23.  *     itemOperations={
  24.  *          "get"={"path"="/ecommerce/mercadoLivreItem/{id}", "security"="is_granted('ROLE_ECOMM_ADMIN')"},
  25.  *          "put"={"path"="/ecommerce/mercadoLivreItem/{id}", "security"="is_granted('ROLE_ECOMM_ADMIN')"},
  26.  *          "delete"={"path"="/ecommerce/mercadoLivreItem/{id}", "security"="is_granted('ROLE_ADMIN')"}
  27.  *     },
  28.  *     collectionOperations={
  29.  *          "get"={"path"="/ecommerce/mercadoLivreItem", "security"="is_granted('ROLE_ECOMM_ADMIN')"},
  30.  *          "post"={"path"="/ecommerce/mercadoLivreItem", "security"="is_granted('ROLE_ECOMM_ADMIN')"}
  31.  *     },
  32.  *
  33.  *     attributes={
  34.  *          "pagination_items_per_page"=10,
  35.  *          "formats"={"jsonld", "csv"={"text/csv"}}
  36.  *     }
  37.  *
  38.  * )
  39.  * @ApiFilter(PropertyFilter::class)
  40.  * @ApiFilter(BooleanFilter::class, properties={
  41.  *     "atual": "exact",
  42.  * })
  43.  *
  44.  * @ApiFilter(SearchFilter::class, properties={
  45.  *     "clienteConfig": "exact",
  46.  * })
  47.  *
  48.  * @ApiFilter(OrderFilter::class, properties={
  49.  *     "id", 
  50.  *     "updated", 
  51.  *     "clienteConfig.cliente.nome",
  52.  *     "statusTray",
  53.  *     "dtVenda",
  54.  *     "idTray",
  55.  *     "pointSale",
  56.  *     "valorTotal"
  57.  * }, arguments={"orderParameterName"="order"})
  58.  *
  59.  * @EntityHandler(entityHandlerClass="App\EntityHandler\Ecommerce\MercadoLivreItemEntityHandler")
  60.  *
  61.  * @ORM\Entity(repositoryClass="App\Repository\Ecommerce\MercadoLivreItemRepository")
  62.  * @ORM\Table(name="ecomm_ml_item")
  63.  *
  64.  * @author Carlos Eduardo Pauluk
  65.  */
  66. class MercadoLivreItem implements EntityId
  67. {
  68.     use EntityIdTrait;
  69.     /**
  70.      * @ORM\Column(name="uuid", type="string", nullable=false, length=36)
  71.      * @NotUppercase()
  72.      * @Groups("mercadoLivreItem")
  73.      * @Assert\Length(min=36, max=36)
  74.      *
  75.      * @var string|null
  76.      */
  77.     public ?string $UUID null;
  78.     
  79.     /**
  80.      * id do item no ML.
  81.      * 
  82.      * @ORM\Column(name="mercadolivre_id", type="string", nullable=false)
  83.      * @Groups("mercadoLivreItem")
  84.      *
  85.      * @var null|string
  86.      */
  87.     public ?string $mercadolivreId null;
  88.     /**
  89.      * @ORM\Column(name="descricao", type="string", nullable=false)
  90.      * @Groups("mercadoLivreItem")
  91.      *
  92.      * @var null|string
  93.      */
  94.     public ?string $descricao null;
  95.     
  96.     /**
  97.      *
  98.      * @ORM\Column(name="preco_venda", type="decimal")
  99.      * @Groups("mercadoLivreItem")
  100.      *
  101.      * @var null|float
  102.      */
  103.     public ?float $precoVenda null;
  104.     /**
  105.      *
  106.      * @ORM\ManyToOne(targetEntity="ClienteConfig")
  107.      * @ORM\JoinColumn(name="cliente_config_id")
  108.      * @Groups("mercadoLivreItem")
  109.      *
  110.      * @var null|ClienteConfig
  111.      */
  112.     public ?ClienteConfig $clienteConfig null;
  113.     
  114.     /**
  115.      * id do usuário no ML. Fica em ecomm_cliente_config.jsonData.mercadolivre.$i.me.id.
  116.      *
  117.      * @ORM\Column(name="mercadolivre_user_id", type="string", nullable=false)
  118.      * @Groups("mercadoLivreItem")
  119.      *
  120.      * @var null|string
  121.      */
  122.     public ?string $mercadolivreUserId null;
  123.     /**
  124.      *
  125.      * @ORM\Column(name="json_data", type="json")
  126.      * @var null|array
  127.      * @NotUppercase()
  128.      * @Groups("mercadoLivreItem")
  129.      */
  130.     public ?array $jsonData null;
  131. }