Files
growup-crm/packages/Webkul/Automation/src/Helpers/Entity.php
2026-02-02 15:31:15 -03:00

104 lines
2.2 KiB
PHP

<?php
namespace Webkul\Automation\Helpers;
use Webkul\Attribute\Repositories\AttributeRepository;
use Webkul\EmailTemplate\Repositories\EmailTemplateRepository;
class Entity
{
/**
* Create a new repository instance.
*
* @return void
*/
public function __construct(
protected AttributeRepository $attributeRepository,
protected EmailTemplateRepository $emailTemplateRepository
) {}
/**
* Returns events to match for the entity
*
* @return array
*/
public function getEvents()
{
$entities = config('workflows.trigger_entities');
$events = [];
foreach ($entities as $key => $entity) {
$object = app($entity['class']);
$events[$key] = [
'id' => $key,
'name' => $entity['name'],
'events' => $entity['events'],
];
}
return $events;
}
/**
* Returns conditions to match for the entity
*
* @return array
*/
public function getConditions()
{
$entities = config('workflows.trigger_entities');
$conditions = [];
foreach ($entities as $key => $entity) {
$object = app($entity['class']);
$conditions[$key] = $object->getConditions();
}
return $conditions;
}
/**
* Returns workflow actions
*
* @return array
*/
public function getActions()
{
$entities = config('workflows.trigger_entities');
$conditions = [];
foreach ($entities as $key => $entity) {
$object = app($entity['class']);
$conditions[$key] = $object->getActions();
}
return $conditions;
}
/**
* Returns placeholders for email templates
*
* @return array
*/
public function getEmailTemplatePlaceholders()
{
$entities = config('workflows.trigger_entities');
$placeholders = [];
foreach ($entities as $key => $entity) {
$object = app($entity['class']);
$placeholders[] = $object->getEmailTemplatePlaceholders($entity);
}
return $placeholders;
}
}