<?php
declare(strict_types=1);
namespace App\Domain\Entity;
use ApiPlatform\Metadata\ApiProperty;
use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\Delete;
use ApiPlatform\Metadata\Get;
use ApiPlatform\Metadata\GetCollection;
use ApiPlatform\Metadata\Post;
use ApiPlatform\Metadata\Put;
use DateTime;
use Gedmo\Timestampable\Traits\Timestampable;
/**
* Class PromoCode
*
* @package App\Domain\Entity
*/
#[ApiResource(
operations : [
new Delete(security: "is_granted('ROLE_ADMIN')"),
new Get(security: "is_granted('ROLE_ADMIN')"),
new GetCollection(security: "is_granted('ROLE_ADMIN')"),
new Post(security: "is_granted('ROLE_ADMIN')"),
new Put(security: "is_granted('ROLE_ADMIN')"),
],
normalizationContext : ['groups' => ['person_promo_code_read']],
denormalizationContext: ['groups' => ['person_promo_code_write']]
)]
class PersonPromoCode
{
use Timestampable;
#[ApiProperty(identifier: true)]
public $id;
/**
* @param PromoCode $promoCode
* @param Person $person
* @param DateTime $start
* @param DateTime $end
*/
public function __construct(
public PromoCode $promoCode,
public Person $person,
public DateTime $start,
public DateTime $end,
) {}
public function getCreatedAt()
{
return $this->createdAt;
}
}