TenantAtlas/apps/platform/app/Support/BackupHealth/BackupHealthDashboardSignal.php
ahmido ce0615a9c1 Spec 182: relocate Laravel platform to apps/platform (#213)
## Summary
- move the Laravel application into `apps/platform` and keep the repository root for orchestration, docs, and tooling
- update the local command model, Sail/Docker wiring, runtime paths, and ignore rules around the new platform location
- add relocation quickstart/contracts plus focused smoke coverage for bootstrap, command model, routes, and runtime behavior

## Validation
- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/PlatformRelocation`
- integrated browser smoke validated `/up`, `/`, `/admin`, `/admin/choose-workspace`, and tenant route semantics for `200`, `403`, and `404`

## Remaining Rollout Checks
- validate Dokploy build context and working-directory assumptions against the new `apps/platform` layout
- confirm web, queue, and scheduler processes all start from the expected working directory in staging/production
- verify no legacy volume mounts or asset-publish paths still point at the old root-level `public/` or `storage/` locations

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #213
2026-04-08 08:40:47 +00:00

48 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Support\BackupHealth;
final readonly class BackupHealthDashboardSignal
{
public function __construct(
public string $title,
public string $body,
public string $tone,
public ?string $badge = null,
public ?string $badgeColor = null,
public ?BackupHealthActionTarget $actionTarget = null,
public bool $actionDisabled = false,
public ?string $helperText = null,
public ?string $actionLabel = null,
public ?string $supportingMessage = null,
) {}
/**
* @return array{
* title: string,
* body: string,
* badge: string|null,
* badgeColor: string|null,
* actionLabel: string|null,
* actionDisabled: bool,
* helperText: string|null,
* supportingMessage: string|null
* }
*/
public function toArray(): array
{
return [
'title' => $this->title,
'body' => $this->body,
'badge' => $this->badge,
'badgeColor' => $this->badgeColor,
'actionLabel' => $this->actionLabel,
'actionDisabled' => $this->actionDisabled,
'helperText' => $this->helperText,
'supportingMessage' => $this->supportingMessage,
];
}
}