src/Entity/DistribuidorData.php line 22

  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\DistribuidorDataRepository;
  4. use ApiPlatform\Metadata\ApiResource;
  5. use Doctrine\DBAL\Types\Types;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use ApiPlatform\Metadata\Get;
  8. use ApiPlatform\Metadata\Post;
  9. use ApiPlatform\Metadata\Patch;
  10. use ApiPlatform\Metadata\GetCollection;
  11. use ApiPlatform\Metadata\ApiFilter;
  12. use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
  13. use Symfony\Component\Validator\Constraints as Assert;
  14. use Symfony\Component\Serializer\Annotation\Groups;
  15. use ApiPlatform\OpenApi\Model;
  16. use App\Controller\DistribuidorDataController;
  17. use App\Controller\DistribuidorDataUpdateController;
  18. #[ORM\Entity(repositoryClassDistribuidorDataRepository::class)]
  19. #[ApiResource(
  20.     operations: [
  21.         new Get(security'is_granted("' ApiToken::SCOPE_USER_READ '")'),
  22.         new GetCollection(security'is_granted("' ApiToken::SCOPE_USER_READ '")'),
  23.         new Post(
  24.             uriTemplate'/distribuidor_data/update',
  25.             security'is_granted("' ApiToken::SCOPE_USER_WRITE_DIST '")',
  26.             controllerDistribuidorDataUpdateController::class,
  27.             deserializefalse,
  28.             inputFormats: ['multipart' => ['multipart/form-data']],
  29.             openapi: new Model\Operation(
  30.                 requestBody: new Model\RequestBody(
  31.                     content: new \ArrayObject([
  32.                         'multipart/form-data' => [
  33.                             'schema' => [
  34.                                 'type' => 'object',
  35.                                 'properties' => [
  36.                                     'icono' => [
  37.                                         'type' => 'string',
  38.                                         'format' => 'binary'
  39.                                     ],
  40.                                     'porcentaje' => [
  41.                                         'type' => 'integer'
  42.                                     ],
  43.                                     'color' => [
  44.                                         'type' => 'string'
  45.                                     ],
  46.                                     'usuario' => [
  47.                                         'type' => 'integer'
  48.                                     ],
  49.                                     'maskActive' => [
  50.                                         'type' => 'boolean'
  51.                                     ],
  52.                                     'oldIcono' => [
  53.                                         'type' => 'integer'
  54.                                     ],
  55.                                     'currentId' => [
  56.                                         'type' => 'integer'
  57.                                     ]
  58.                                 ]
  59.                             ]
  60.                         ]
  61.                     ])
  62.                 )
  63.             )
  64.         ),
  65.         new Post(
  66.             uriTemplate'/distribuidor_data/create',
  67.             security'is_granted("' ApiToken::SCOPE_USER_WRITE_DIST '")',
  68.             controllerDistribuidorDataController::class,
  69.             deserializefalse,
  70.             inputFormats: ['multipart' => ['multipart/form-data']],
  71.             openapi: new Model\Operation(
  72.                 requestBody: new Model\RequestBody(
  73.                     content: new \ArrayObject([
  74.                         'multipart/form-data' => [
  75.                             'schema' => [
  76.                                 'type' => 'object',
  77.                                 'properties' => [
  78.                                     'icono' => [
  79.                                         'type' => 'string',
  80.                                         'format' => 'binary'
  81.                                     ],
  82.                                     'porcentaje' => [
  83.                                         'type' => 'integer'
  84.                                     ],
  85.                                     'color' => [
  86.                                         'type' => 'string'
  87.                                     ],
  88.                                     'usuario' => [
  89.                                         'type' => 'integer'
  90.                                     ],
  91.                                     'maskActive' => [
  92.                                         'type' => 'boolean'
  93.                                     ]
  94.                                 ]
  95.                             ]
  96.                         ]
  97.                     ])
  98.                 )
  99.             )
  100.         )
  101.     ],
  102.     normalizationContext: ['groups' => ['distribuidor-data:read']],
  103.     denormalizationContext: ['groups' => ['distribuidor-data:write']],
  104. )]
  105. #[ApiFilter(SearchFilter::class, properties: ['id' => 'exact''usuario' => 'exact'])]
  106. class DistribuidorData
  107. {
  108.     #[ORM\Id]
  109.     #[ORM\GeneratedValue]
  110.     #[ORM\Column]
  111.     #[Groups(['distribuidor-data:read''distribuidor-data:write'])]
  112.     private ?int $id null;
  113.     #[ORM\Column(length10nullabletrue)]
  114.     #[Groups(['distribuidor-data:read''distribuidor-data:write'])]
  115.     private ?string $color null;
  116.     #[ORM\Column(typeTypes::SMALLINTnullabletrue)]
  117.     #[Groups(['distribuidor-data:read''distribuidor-data:write'])]
  118.     private ?int $porcentaje null;
  119.     #[ORM\OneToOne(inversedBy'distribuidorData'cascade: ['persist''remove'])]
  120.     #[ORM\JoinColumn(nullablefalse)]
  121.     #[Groups(['distribuidor-data:read''distribuidor-data:write'])]
  122.     private ?User $usuario null;
  123.     #[ORM\Column]
  124.     #[Groups(['distribuidor-data:read''distribuidor-data:write'])]
  125.     private ?bool $maskActive null;
  126.     #[ORM\OneToOne(inversedBy'distribuidorData'cascade: ['persist''remove'])]
  127.     #[Groups(['distribuidor-data:read''distribuidor-data:write'])]
  128.     private ?ImagenDistribuidor $icono null;
  129.     public function getId(): ?int
  130.     {
  131.         return $this->id;
  132.     }
  133.     public function getColor(): ?string
  134.     {
  135.         return $this->color;
  136.     }
  137.     public function setColor(?string $color): static
  138.     {
  139.         $this->color $color;
  140.         return $this;
  141.     }
  142.     public function getPorcentaje(): ?int
  143.     {
  144.         return $this->porcentaje;
  145.     }
  146.     public function setPorcentaje(?int $porcentaje): static
  147.     {
  148.         $this->porcentaje $porcentaje;
  149.         return $this;
  150.     }
  151.     public function getUsuario(): ?User
  152.     {
  153.         return $this->usuario;
  154.     }
  155.     public function setUsuario(User $usuario): static
  156.     {
  157.         $this->usuario $usuario;
  158.         return $this;
  159.     }
  160.     public function isMaskActive(): ?bool
  161.     {
  162.         return $this->maskActive;
  163.     }
  164.     public function setMaskActive(bool $maskActive): static
  165.     {
  166.         $this->maskActive $maskActive;
  167.         return $this;
  168.     }
  169.     public function getIcono(): ?ImagenDistribuidor
  170.     {
  171.         return $this->icono;
  172.     }
  173.     public function setIcono(?ImagenDistribuidor $icono): static
  174.     {
  175.         $this->icono $icono;
  176.         return $this;
  177.     }
  178. }