TenantAtlas/database/factories/PolicyVersionFactory.php
ahmido 92704a2f7e Spec 118: Resumable baseline evidence capture + snapshot UX (#143)
Implements Spec 118 baseline drift engine improvements:

- Resumable, budget-aware evidence capture for baseline capture/compare runs (resume token + UI action)
- “Why no findings?” reason-code driven explanations and richer run context panels
- Baseline Snapshot resource (list/detail) with fidelity visibility
- Retention command + schedule for pruning baseline-purpose PolicyVersions
- i18n strings for Baseline Compare landing

Verification:
- `vendor/bin/sail bin pint --dirty --format agent`
- `vendor/bin/sail artisan test --compact --filter=Baseline` (159 passed)

Note:
- `docs/audits/redaction-audit-2026-03-04.md` left untracked (not part of PR).

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #143
2026-03-04 22:34:13 +00:00

38 lines
1.1 KiB
PHP

<?php
namespace Database\Factories;
use App\Models\Policy;
use App\Models\Tenant;
use App\Support\Baselines\PolicyVersionCapturePurpose;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\PolicyVersion>
*/
class PolicyVersionFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
return [
'tenant_id' => Tenant::factory(),
'policy_id' => Policy::factory(),
'version_number' => 1,
'policy_type' => 'settingsCatalogPolicy',
'platform' => fake()->randomElement(['android', 'iOS', 'macOS', 'windows10']),
'created_by' => fake()->safeEmail(),
'captured_at' => now(),
'snapshot' => ['example' => true],
'metadata' => [],
'capture_purpose' => PolicyVersionCapturePurpose::Backup->value,
'operation_run_id' => null,
'baseline_profile_id' => null,
];
}
}