<?php

namespace Tests\Support\Steps;

use App\Models\Instance;
use App\Models\Order;
use App\Models\ProvisioningRun;
use App\Provisioning\StepResult;
use App\Provisioning\Steps\Customer\CustomerStep;

/** Exposes CustomerStep's protected helpers for testing the base class. */
class ProbeCustomerStep extends CustomerStep
{
    public function key(): string
    {
        return 'probe';
    }

    public function execute(ProvisioningRun $run): StepResult
    {
        return StepResult::advance();
    }

    public function orderOf(ProvisioningRun $run): Order
    {
        return $this->order($run);
    }

    public function instanceOf(ProvisioningRun $run): ?Instance
    {
        return $this->instance($run);
    }

    /** @return array<string, mixed> */
    public function planOf(ProvisioningRun $run): array
    {
        return $this->plan($run);
    }
}
