CritiqueStatus.php
- Pfad:
src/Domain/ValueObject/CritiqueStatus.php - Namespace: Domain\ValueObject
- Zeilen: 97 | Größe: 2,179 Bytes
- Geändert: 2025-12-25 10:43:10 | Gescannt: 2025-12-31 10:22:15
Code Hygiene Score: 100
- Dependencies: 100 (25%)
- LOC: 100 (20%)
- Methods: 100 (20%)
- Secrets: 100 (15%)
- Classes: 100 (10%)
- Magic Numbers: 100 (10%)
Keine Issues gefunden.
Klassen 1
-
CritiqueStatusenum Zeile 9
Funktionen 8
-
canTransitionTo()public Zeile 19 -
getAllowedTransitions()public Zeile 29 -
isActive()public Zeile 42 -
isTerminal()public Zeile 50 -
canStart()public Zeile 58 -
canRetry()public Zeile 66 -
label()public Zeile 74 -
badgeClass()public Zeile 87
Verwendet von 2
- ContentOrderDTO.php use
- ContentOrderDTO.php constructor
Code
<?php
declare(strict_types=1);
namespace Domain\ValueObject;
// @responsibility: Critique-Status-Enum mit State-Machine für Content-Kritik
enum CritiqueStatus: string
{
case IDLE = 'idle';
case CRITIQUING = 'critiquing';
case COMPLETED = 'completed';
case FAILED = 'failed';
/**
* Check if transition to target status is allowed.
*/
public function canTransitionTo(self $target): bool
{
return in_array($target, $this->getAllowedTransitions(), true);
}
/**
* Get all allowed transitions from current status.
*
* @return array<self>
*/
public function getAllowedTransitions(): array
{
return match ($this) {
self::IDLE => [self::CRITIQUING],
self::CRITIQUING => [self::COMPLETED, self::FAILED],
self::COMPLETED => [self::IDLE],
self::FAILED => [self::IDLE],
};
}
/**
* Check if critique is currently active.
*/
public function isActive(): bool
{
return $this === self::CRITIQUING;
}
/**
* Check if this is a terminal status.
*/
public function isTerminal(): bool
{
return in_array($this, [self::COMPLETED, self::FAILED], true);
}
/**
* Check if critique can be started.
*/
public function canStart(): bool
{
return $this === self::IDLE;
}
/**
* Check if critique can be retried.
*/
public function canRetry(): bool
{
return $this === self::FAILED;
}
/**
* Get human-readable label.
*/
public function label(): string
{
return match ($this) {
self::IDLE => 'Bereit',
self::CRITIQUING => 'In Kritik',
self::COMPLETED => 'Abgeschlossen',
self::FAILED => 'Fehlgeschlagen',
};
}
/**
* Get CSS class for badge styling.
*/
public function badgeClass(): string
{
return match ($this) {
self::IDLE => 'secondary',
self::CRITIQUING => 'warning',
self::COMPLETED => 'completed',
self::FAILED => 'failed',
};
}
}