<?php

namespace Database\Factories;

use App\Models\Policy;
use App\Models\ManagedEnvironment;
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 [
            'managed_environment_id' => ManagedEnvironment::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' => [],
            'secret_fingerprints' => [
                'snapshot' => [],
                'assignments' => [],
                'scope_tags' => [],
            ],
            'redaction_version' => 1,
            'capture_purpose' => PolicyVersionCapturePurpose::Backup->value,
            'operation_run_id' => null,
            'baseline_profile_id' => null,
        ];
    }
}
