## Summary - add canonical onboarding lifecycle and checkpoint fields plus optimistic locking versioning for managed tenant onboarding drafts - introduce centralized onboarding lifecycle and mutation services and route wizard mutations through version-checked writes - convert Verify Access and Bootstrap into live checkpoint-driven wizard states with conditional polling and updated browser/feature/unit coverage - add Spec Kit artifacts for feature 140, including spec, plan, tasks, research, data model, quickstart, checklist, and logical contract ## Validation - branch was committed and pushed cleanly - focused tests and formatting were updated during implementation work - full validation was not re-run as part of this final git/PR step ## Notes - base branch: `dev` - feature branch: `140-onboarding-lifecycle-operation-checkpoints-concurrency-mvp` - outstanding follow-up items, if any, remain tracked in `specs/140-onboarding-lifecycle-operation-checkpoints-concurrency-mvp/tasks.md` Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #169
20 lines
480 B
PHP
20 lines
480 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Exceptions\Onboarding;
|
|
|
|
use App\Support\Onboarding\OnboardingLifecycleState;
|
|
use RuntimeException;
|
|
|
|
class OnboardingDraftImmutableException extends RuntimeException
|
|
{
|
|
public function __construct(
|
|
public readonly int $draftId,
|
|
public readonly OnboardingLifecycleState $lifecycleState,
|
|
string $message = 'This onboarding draft is no longer editable.',
|
|
) {
|
|
parent::__construct($message);
|
|
}
|
|
}
|