* @implements BeforeSave */ class DeleteId implements BeforeRemove, BeforeSave { public function beforeRemove(Entity $entity, RemoveOptions $options): void { $entity->set('deleteId', Util::generateId()); } public function beforeSave(Entity $entity, SaveOptions $options): void { if (!$entity->isAttributeChanged('deleted')) { return; } $deleteId = $entity->get('deleted') ? Util::generateId() : '0'; $entity->set('deleteId', $deleteId); } }