ActiveStatus.php
- Pfad:
src/Domain/ValueObject/ActiveStatus.php - Namespace: Domain\ValueObject
- Zeilen: 84 | Größe: 1,632 Bytes
- Geändert: 2025-12-25 10:43:37 | 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
-
ActiveStatusenum Zeile 9
Funktionen 8
-
isActive()public Zeile 17 -
toggle()public Zeile 25 -
fromBool()public Zeile 33 -
fromInt()public Zeile 41 -
toBool()public Zeile 49 -
toInt()public Zeile 57 -
label()public Zeile 65 -
badgeClass()public Zeile 76
Code
<?php
declare(strict_types=1);
namespace Domain\ValueObject;
// @responsibility: Active-Status-Enum als Ersatz für Boolean is_active Felder
enum ActiveStatus: string
{
case ACTIVE = 'active';
case INACTIVE = 'inactive';
/**
* Check if status is active.
*/
public function isActive(): bool
{
return $this === self::ACTIVE;
}
/**
* Get toggled status.
*/
public function toggle(): self
{
return $this === self::ACTIVE ? self::INACTIVE : self::ACTIVE;
}
/**
* Create from boolean value.
*/
public static function fromBool(bool $active): self
{
return $active ? self::ACTIVE : self::INACTIVE;
}
/**
* Create from database tinyint (0/1).
*/
public static function fromInt(int $value): self
{
return $value === 1 ? self::ACTIVE : self::INACTIVE;
}
/**
* Convert to boolean.
*/
public function toBool(): bool
{
return $this === self::ACTIVE;
}
/**
* Convert to database tinyint (0/1).
*/
public function toInt(): int
{
return $this === self::ACTIVE ? 1 : 0;
}
/**
* Get human-readable label.
*/
public function label(): string
{
return match ($this) {
self::ACTIVE => 'Aktiv',
self::INACTIVE => 'Inaktiv',
};
}
/**
* Get CSS class for badge styling.
*/
public function badgeClass(): string
{
return match ($this) {
self::ACTIVE => 'completed',
self::INACTIVE => 'secondary',
};
}
}