This commit is contained in:
2026-03-31 00:30:50 +02:00
parent 5435209b08
commit af48e84449
30 changed files with 2706 additions and 111 deletions

View File

@@ -10,6 +10,7 @@ use App\Modules\Accounting\ReceiptRepository;
use App\Modules\Automation\AutomationRepository;
use App\Modules\Automation\AutomationService;
use App\Modules\Automation\AutomationExecutionLogRepository;
use App\Modules\Automation\OrderStatusAgedService;
use App\Modules\Email\AttachmentGenerator;
use App\Modules\Email\EmailSendingService;
use App\Modules\Email\VariableResolver;
@@ -106,15 +107,16 @@ final class CronHandlerFactory
$shopproStatusMappingRepo,
$this->db
);
$automationService = $this->buildAutomationService($ordersRepository);
$shopproPaymentSyncService = new ShopproPaymentStatusSyncService(
$shopproIntegrationsRepo,
new ShopproApiClient(),
$ordersRepository,
$this->db
$this->db,
$automationService
);
$automationService = $this->buildAutomationService($ordersRepository);
return new CronRunner(
$cronRepository,
$logger,
@@ -166,6 +168,13 @@ final class CronHandlerFactory
'automation_history_cleanup' => new AutomationHistoryCleanupHandler(
new AutomationExecutionLogRepository($this->db)
),
'order_status_aged' => new OrderStatusAgedHandler(
new OrderStatusAgedService(
new AutomationRepository($this->db),
$automationService,
$this->db
)
),
]
);
}

View File

@@ -0,0 +1,27 @@
<?php
declare(strict_types=1);
namespace App\Modules\Cron;
use App\Modules\Automation\OrderStatusAgedService;
final class OrderStatusAgedHandler
{
public function __construct(private readonly OrderStatusAgedService $service)
{
}
/**
* @param array<string, mixed> $payload
* @return array<string, mixed>
*/
public function handle(array $payload): array
{
$triggered = $this->service->scan();
return [
'ok' => true,
'triggered_count' => $triggered,
];
}
}