<?php

namespace App\Services\Providers;

use App\Support\Providers\ProviderConnectionType;

final class ProviderConnectionClassificationResult
{
    /**
     * @param  array<string, mixed>  $signals
     * @param  array{app_id: ?string, source: string}  $effectiveApp
     */
    public function __construct(
        public readonly int $providerConnectionId,
        public readonly ProviderConnectionType $suggestedConnectionType,
        public readonly bool $reviewRequired,
        public readonly array $signals,
        public readonly array $effectiveApp,
        public readonly string $source,
    ) {}

    /**
     * @return array<string, mixed>
     */
    public function metadata(): array
    {
        return [
            'legacy_identity_classification_source' => $this->source,
            'legacy_identity_review_required' => $this->reviewRequired,
            'legacy_identity_signals' => $this->signals,
            'legacy_identity_result' => $this->suggestedConnectionType->value,
            'effective_app' => $this->effectiveApp,
            'suggested_connection_type' => $this->suggestedConnectionType->value,
        ];
    }
}
