<?php

namespace Database\Factories;

use App\Models\OperationRun;
use App\Models\User;
use App\Models\VerificationCheckAcknowledgement;
use Illuminate\Database\Eloquent\Factories\Factory;

/**
 * @extends Factory<VerificationCheckAcknowledgement>
 */
class VerificationCheckAcknowledgementFactory extends Factory
{
    protected $model = VerificationCheckAcknowledgement::class;

    public function definition(): array
    {
        return [
            'operation_run_id' => function (): int {
                return (int) OperationRun::factory()->create()->getKey();
            },
            'managed_environment_id' => function (array $attributes): int {
                return (int) OperationRun::query()->whereKey((int) $attributes['operation_run_id'])->value('managed_environment_id');
            },
            'workspace_id' => function (array $attributes): int {
                return (int) OperationRun::query()->whereKey((int) $attributes['operation_run_id'])->value('workspace_id');
            },
            'check_key' => 'provider_connection.token_acquisition',
            'ack_reason' => fake()->sentence(6),
            'expires_at' => null,
            'acknowledged_at' => now(),
            'acknowledged_by_user_id' => User::factory(),
        ];
    }
}
