- Move 12 markdown files from root to docs/ subdirectories - Organize documentation by category: • docs/troubleshooting/ (1 file) - Technical troubleshooting guides • docs/deployment/ (4 files) - Deployment and security documentation • docs/guides/ (3 files) - Feature-specific guides • docs/planning/ (4 files) - Planning and improvement proposals Root directory cleanup: - Reduced from 16 to 4 markdown files in root - Only essential project files remain: • CLAUDE.md (AI instructions) • README.md (Main project readme) • CLEANUP_PLAN.md (Current cleanup plan) • SRC_STRUCTURE_IMPROVEMENTS.md (Structure improvements) This improves: ✅ Documentation discoverability ✅ Logical organization by purpose ✅ Clean root directory ✅ Better maintainability
48 lines
998 B
PHP
48 lines
998 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Application\Admin\ValueObjects;
|
|
|
|
final readonly class Breadcrumb
|
|
{
|
|
public function __construct(
|
|
public string $name,
|
|
public ?string $url = null,
|
|
public bool $isActive = false
|
|
) {
|
|
}
|
|
|
|
public static function fromArray(array $data): self
|
|
{
|
|
return new self(
|
|
name: $data['name'] ?? '',
|
|
url: $data['url'] ?? null,
|
|
isActive: $data['is_active'] ?? false
|
|
);
|
|
}
|
|
|
|
public function toArray(): array
|
|
{
|
|
return [
|
|
'name' => $this->name,
|
|
'url' => $this->url,
|
|
'is_active' => $this->isActive,
|
|
];
|
|
}
|
|
|
|
public function withActiveState(bool $isActive): self
|
|
{
|
|
return new self(
|
|
name: $this->name,
|
|
url: $this->url,
|
|
isActive: $isActive
|
|
);
|
|
}
|
|
|
|
public function isClickable(): bool
|
|
{
|
|
return $this->url !== null && ! $this->isActive;
|
|
}
|
|
}
|