<?php

namespace App\Services\Providers;

use App\Models\OperationRun;

final class ProviderOperationStartResult
{
    private function __construct(
        public readonly string $status,
        public readonly OperationRun $run,
        public readonly bool $dispatched,
    ) {}

    public static function started(OperationRun $run, bool $dispatched): self
    {
        return new self('started', $run, $dispatched);
    }

    public static function deduped(OperationRun $run): self
    {
        return new self('deduped', $run, false);
    }

    public static function scopeBusy(OperationRun $run): self
    {
        return new self('scope_busy', $run, false);
    }

    public static function blocked(OperationRun $run): self
    {
        return new self('blocked', $run, false);
    }
}
