use Doctrine\ORM\Mapping as ORM;
use DualMedia\Common\Interface\IdentifiableInterface;
#[ORM\Entity]
class Item implements IdentifiableInterface
{
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'AUTO')]
#[ORM\Column(type: 'integer')]
private ?int $id = null;
#[ORM\Column(type: 'smallint')]
private ?int $status = null;
public function getId()
{
return $this->id;
}
public function getStatus(): ?int
{
return $this->status;
}
public function setStatus(
int $status
): self {
$this->status = $status;
return $this;
}
}
use DualMedia\DoctrineEventConverterBundle\Attribute\EventEntity;
use DualMedia\DoctrineEventConverterBundle\Attribute\PrePersistEvent;
use DualMedia\DoctrineEventConverterBundle\Event\AbstractEntityEvent;
#[EventEntity(Item::class)] // specifies what Doctrine Entity this event is for, you can use the same event class for multiple
#[PrePersistEvent] // specifies what events will fire
abstract class ItemEvent extends AbstractEntityEvent
{
}
use \DualMedia\DoctrineEventConverterBundle\Attribute\SubEvent;
use \DualMedia\DoctrineEventConverterBundle\Model\Change;
#[SubEvent("PendingToComplete", changes: [new Change('status', ItemStatusEnum::Pending, ItemStatusEnum::Complete)])]