BREAKING CHANGE: Assignment capture flow completely refactored Core Changes: - Created PolicyCaptureOrchestrator service for centralized capture coordination - Refactored BackupService to use orchestrator (version-first approach) - Fixed domain model bug: PolicyVersion now stores assignments (source of truth) - BackupItem references PolicyVersion and copies assignments for restore Database: - Added assignments, scope_tags, assignments_hash, scope_tags_hash to policy_versions - Added policy_version_id foreign key to backup_items - Migrations: 2025_12_22_171525, 2025_12_22_171545 Services: - PolicyCaptureOrchestrator: Intelligent version reuse, idempotent backfilling - VersionService: Enhanced to capture assignments during version creation - BackupService: Uses orchestrator, version-first capture flow UI: - Moved assignments widget from Policy to PolicyVersion view - Created PolicyVersionAssignmentsWidget Livewire component - Updated BackupItemsRelationManager columns for new assignment fields Tests: - Deleted BackupWithAssignmentsTest (old behavior) - Created BackupWithAssignmentsConsistencyTest (4 tests, all passing) - Fixed AssignmentFetcherTest and GroupResolverTest for GraphResponse - All 162 tests passing Issue: Assignments/scope tags not displaying in BackupSet items table (UI only) Status: Database contains correct data, UI column definitions need adjustment
23 lines
623 B
PHP
23 lines
623 B
PHP
<?php
|
|
|
|
namespace App\Filament\Resources\PolicyVersionResource\Pages;
|
|
|
|
use App\Filament\Resources\PolicyVersionResource;
|
|
use Filament\Resources\Pages\ViewRecord;
|
|
use Filament\Support\Enums\Width;
|
|
use Illuminate\Contracts\View\View;
|
|
|
|
class ViewPolicyVersion extends ViewRecord
|
|
{
|
|
protected static string $resource = PolicyVersionResource::class;
|
|
|
|
protected Width|string|null $maxContentWidth = Width::Full;
|
|
|
|
public function getFooter(): ?View
|
|
{
|
|
return view('filament.resources.policy-version-resource.pages.view-policy-version-footer', [
|
|
'record' => $this->getRecord(),
|
|
]);
|
|
}
|
|
}
|