src/Domain/Entity/PromoCodeImport.php line 32

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\Get;
  6. use ApiPlatform\Metadata\GetCollection;
  7. use App\Application\Controller\Api\PromoCodeImport\DownloadAction;
  8. use App\Domain\Entity\Behavior\Identifiable;
  9. use Gedmo\Timestampable\Traits\Timestampable;
  10. /**
  11.  * Class PromoCode
  12.  *
  13.  * @package App\Domain\Entity
  14.  */
  15. #[ApiResource(
  16.     operations            : [
  17.         new GetCollection(security'is_granted("ROLE_ADMIN")'),
  18.         new Get(uriTemplate'/promo_code_imports/{uuid}'security"is_granted('ROLE_ADMIN')"),
  19.         new Get(
  20.             uriTemplate'/promo_code_imports/{uuid}/download',
  21.             controller DownloadAction::class,
  22.             security   "is_granted('ROLE_ADMIN')"
  23.         ),
  24.     ],
  25.     normalizationContext  : ['groups' => ['promo_code_import_read']],
  26.     denormalizationContext: ['groups' => ['promo_code_import_write']],
  27. )]
  28. class PromoCodeImport
  29. {
  30.     use Identifiable;
  31.     use Timestampable;
  32.     public const STATUS_PENDING "pending";
  33.     public const STATUS_SUCCESS "success";
  34.     public const STATUS_ERROR   "error";
  35.     public function __construct(
  36.         public ?string $importPath null,
  37.         public ?string $path null,
  38.         public string $status self::STATUS_PENDING,
  39.         public ?string $error null,
  40.     ) {}
  41. }