<?php

declare(strict_types=1);

namespace App\Services\Intune;

final readonly class ProtectedSnapshotResult
{
    /**
     * @param  array<string, mixed>  $snapshot
     * @param  array<int, array<string, mixed>>|null  $assignments
     * @param  array<int, array<string, mixed>>|array<string, mixed>|null  $scopeTags
     * @param  array{
     *     snapshot: array<string, string>,
     *     assignments: array<string, string>,
     *     scope_tags: array<string, string>
     * }  $secretFingerprints
     */
    public function __construct(
        public array $snapshot,
        public ?array $assignments,
        public ?array $scopeTags,
        public array $secretFingerprints,
        public int $redactionVersion,
        public int $protectedPathsCount,
    ) {}

    /**
     * @return array{
     *     snapshot: array<string, string>,
     *     assignments: array<string, string>,
     *     scope_tags: array<string, string>
     * }
     */
    public static function emptyFingerprints(): array
    {
        return [
            'snapshot' => [],
            'assignments' => [],
            'scope_tags' => [],
        ];
    }
}
