<?php
declare(strict_types=1);

namespace App\Core\Facades;

use App\Core\Contracts\WorkflowEngineInterface;
use App\Core\Facade;

/**
 * @method static object createInstance(string $workflowCode, string $entityType, int $entityId, ?array $stateData = null)
 * @method static bool transition(int $instanceId, string $transitionName, ?string $notes = null, string $triggerType = 'manual')
 * @method static array getAvailableTransitions(int $instanceId)
 * @method static bool transitionByEntity(string $entityType, int $entityId, string $transitionName, ?string $notes = null)
 * @method static ?string getCurrentState(string $entityType, int $entityId, ?string $workflowCode = null)
 * @method static array getHistory(int $instanceId)
 */
final class Workflow extends Facade
{
    protected static function getContainerKey(): string
    {
        return WorkflowEngineInterface::class;
    }
}
