Backup #523

ID523
Dateipfad/var/www/dev.campus.systemische-tools.de/src/Domain/ValueObject/TaskStatus.php
Version2
Typ modified
Größe1.4 KB
Hashaa19446a21e05120484331a8c9a47fde14f17d0e127e190978f700b8e0fce773
Datum2025-12-22 15:53:12
Geändert vonclaude-code-hook
GrundClaude Code Pre-Hook Backup vor Edit-Operation
Datei existiert Ja

Dateiinhalt

<?php

namespace Domain\ValueObject;

enum TaskStatus: string
{
    case PENDING = 'pending';
    case IN_PROGRESS = 'in_progress';
    case COMPLETED = 'completed';
    case FAILED = 'failed';
    case CANCELLED = 'cancelled';

    /**
     * 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::PENDING => [self::IN_PROGRESS, self::CANCELLED],
            self::IN_PROGRESS => [self::COMPLETED, self::FAILED, self::CANCELLED],
            self::COMPLETED => [],
            self::FAILED => [self::PENDING], // Allow retry
            self::CANCELLED => [],
        };
    }

    /**
     * Check if this is a terminal (final) status.
     */
    public function isTerminal(): bool
    {
        return in_array($this, [self::COMPLETED, self::FAILED, self::CANCELLED], true);
    }

    public function label(): string
    {
        return match ($this) {
            self::PENDING => 'Offen',
            self::IN_PROGRESS => 'In Arbeit',
            self::COMPLETED => 'Abgeschlossen',
            self::FAILED => 'Fehlgeschlagen',
            self::CANCELLED => 'Abgebrochen',
        };
    }
}

Vollständig herunterladen

Aktionen

Herunterladen

Andere Versionen dieser Datei

ID Version Typ Größe Datum
811 3 modified 1.8 KB 2025-12-23 08:08
523 2 modified 1.4 KB 2025-12-22 15:53
522 1 modified 1.0 KB 2025-12-22 15:53

← Zurück zur Übersicht