İlk temizlik tamamlandı bir önceki projeden
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\WeldLogTriggers;
|
||||
|
||||
use App\Services\WeldLogTriggers\Triggers\SpoolStatusChangerTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\LineListsUpdateTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\NdeMatrixUpdateTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\RequestDateOperationsTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\RepairLogsUpdateTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\NdeProjectUpdateTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\TestPackageOperationsTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\ConstructionPaintLogsTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\TestPackSyncTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\TestPackBaseStatusChangerTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\PaintFollowUpsSyncTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\HandoversSyncTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\TestPackCleanupTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\NdtCalculationCacheTrigger;
|
||||
use App\Services\WeldLogTriggers\Triggers\RegisterCreatorCacheTrigger;
|
||||
|
||||
/**
|
||||
* WeldLog Trigger Registry
|
||||
*
|
||||
* Central registry for all weld log triggers
|
||||
* Manages trigger registration and retrieval
|
||||
*/
|
||||
class WeldLogTriggerRegistry
|
||||
{
|
||||
/**
|
||||
* @var array Registered triggers
|
||||
*/
|
||||
protected $triggers = [];
|
||||
|
||||
/**
|
||||
* Constructor - automatically registers all triggers
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->registerTriggers();
|
||||
}
|
||||
|
||||
/**
|
||||
* Register all trigger instances
|
||||
*/
|
||||
protected function registerTriggers()
|
||||
{
|
||||
// Order 1-12 based on trigger execution order
|
||||
$this->register(new SpoolStatusChangerTrigger()); // Order 1
|
||||
$this->register(new LineListsUpdateTrigger()); // Order 2
|
||||
$this->register(new NdeMatrixUpdateTrigger()); // Order 3
|
||||
$this->register(new RequestDateOperationsTrigger()); // Order 4
|
||||
$this->register(new RepairLogsUpdateTrigger()); // Order 5
|
||||
$this->register(new NdeProjectUpdateTrigger()); // Order 6
|
||||
$this->register(new TestPackageOperationsTrigger()); // Order 7
|
||||
$this->register(new TestPackSyncTrigger()); // Order 8 - Sync from WeldLog to Test Pack
|
||||
$this->register(new ConstructionPaintLogsTrigger()); // Order 9
|
||||
$this->register(new TestPackBaseStatusChangerTrigger()); // Order 10
|
||||
$this->register(new PaintFollowUpsSyncTrigger()); // Order 11
|
||||
$this->register(new HandoversSyncTrigger()); // Order 12
|
||||
$this->register(new TestPackCleanupTrigger()); // Order 13
|
||||
$this->register(new NdtCalculationCacheTrigger()); // Order 14
|
||||
$this->register(new RegisterCreatorCacheTrigger()); // Order 15
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a single trigger
|
||||
*
|
||||
* @param \App\Services\WeldLogTriggers\Contracts\WeldLogTriggerInterface $trigger
|
||||
*/
|
||||
public function register($trigger)
|
||||
{
|
||||
$this->triggers[$trigger->getName()] = $trigger;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all triggers sorted by execution order
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getTriggersInOrder(): array
|
||||
{
|
||||
$triggers = $this->triggers;
|
||||
usort($triggers, function($a, $b) {
|
||||
return $a->getOrder() <=> $b->getOrder();
|
||||
});
|
||||
return $triggers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a specific trigger by name
|
||||
*
|
||||
* @param string $name Trigger name
|
||||
* @return \App\Services\WeldLogTriggers\Contracts\WeldLogTriggerInterface|null
|
||||
*/
|
||||
public function getTrigger(string $name)
|
||||
{
|
||||
return $this->triggers[$name] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all registered trigger names
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getTriggerNames(): array
|
||||
{
|
||||
return array_keys($this->triggers);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get total count of registered triggers
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
return count($this->triggers);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user