TenantAtlas/apps/platform/app/Support/ReviewPublicationResolution/ReviewPublicationResolutionStepKey.php
ahmido ba7622a158 feat: implement ReviewPublicationResolutionWorkflow (Spec 386) (#457)
## Summary\n- Implements the ReviewPublicationResolutionWorkflow for Spec 386.\n- Adds resolution case/step persistence, policies, services, audit action IDs, and Filament integration.\n- Updates specs, UI/UX documentation, screenshots, and Pest coverage.\n\n## Tests\n- Not run during this handoff; branch was already clean and pushed.\n\n## Target\n- Base: platform-dev\n- Head/topic: 386-review-publication-resolution-workflow-v1

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #457
2026-06-18 21:06:20 +00:00

55 lines
1.9 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Support\ReviewPublicationResolution;
enum ReviewPublicationResolutionStepKey: string
{
case ValidateReviewReadiness = 'validate_review_readiness';
case CompleteRequiredReports = 'complete_required_reports';
case CollectEvidenceSnapshot = 'collect_evidence_snapshot';
case RefreshReviewComposition = 'refresh_review_composition';
case GenerateReviewPack = 'generate_review_pack';
case ReturnToPublication = 'return_to_publication';
/**
* @return list<self>
*/
public static function ordered(): array
{
return [
self::ValidateReviewReadiness,
self::CompleteRequiredReports,
self::CollectEvidenceSnapshot,
self::RefreshReviewComposition,
self::GenerateReviewPack,
self::ReturnToPublication,
];
}
public function label(): string
{
return match ($this) {
self::ValidateReviewReadiness => 'Validate review readiness',
self::CompleteRequiredReports => 'Complete required reports',
self::CollectEvidenceSnapshot => 'Collect evidence snapshot',
self::RefreshReviewComposition => 'Refresh review composition',
self::GenerateReviewPack => 'Generate review pack',
self::ReturnToPublication => 'Return to publication',
};
}
public function primaryActionKey(): ?string
{
return match ($this) {
self::CompleteRequiredReports => 'complete_required_reports',
self::CollectEvidenceSnapshot => 'collect_evidence_snapshot',
self::RefreshReviewComposition => 'refresh_review_composition',
self::GenerateReviewPack => 'generate_review_pack',
self::ReturnToPublication => 'return_to_publication',
self::ValidateReviewReadiness => null,
};
}
}