<?php

/**
 * Phase 1 - F3 : Configuration des providers de signature electronique.
 *
 * Le provider par defaut est selectionne via `SIGNATURE_PROVIDER` (.env).
 * Override per-document possible via `Lead_proposal->metadata['signature_provider']`.
 *
 * Niveaux eIDAS :
 *   1 = Signature simple (signature_pad PNG / typee). Recevable mais charge
 *       de preuve cote agent en cas de contestation.
 *   2 = Signature avancee (certificat + horodatage qualifie RFC 3161).
 *       Presomption de fiabilite - equivalent juridique manuscrit.
 *   3 = Signature qualifiee (+ moyen QSCD, ex. token / carte). Notaire only.
 *
 * @see Rootsud\City\User\Services\Signature\SignatureManager
 */

return [

    /**
     * Provider par defaut quand aucun override metadata n'est present.
     * 'local' couvre eIDAS niveau 1 (signature_pad).
     */
    'default' => env('SIGNATURE_PROVIDER', 'local'),

    /**
     * Niveau eIDAS minimum requis pour considerer un mandat juridiquement
     * conforme. Cle utilisee par MandateRegistry::register() (Phase 1 - F5).
     *
     * 1 = niveau actuel (recevable, suffisant pour la plupart des mandats
     *     transactionnels classiques mais charge de preuve renforcee).
     * 2 = exigence renforcee (necessite un provider SaaS eIDAS qualifie).
     */
    'min_eidas_level_for_mandates' => (int) env('SIGNATURE_MIN_EIDAS_LEVEL', 1),

    /**
     * Liste des providers disponibles. Chaque entree :
     *   - driver : classe implementant SignatureProviderInterface
     *   - eidas_level : niveau eIDAS theorique du provider (info indicative)
     *   - enabled : flag d'activation (Local = toujours true, autres opt-in)
     *   - + clefs API specifiques au provider (a remplir avant activation)
     */
    'providers' => [

        'local' => [
            'driver' => \Rootsud\City\User\Services\Signature\LocalSignaturePadProvider::class,
            'eidas_level' => 1,
            'enabled' => true,
        ],

        // Phase 3 - A6 / V9 / A9 : multi-parties (offre, compromis, bail, EDL)
        // Chaque signataire a son propre signature_token et signe via le portail.
        'multi_party' => [
            'driver' => \Rootsud\City\User\Services\Signature\MultiPartySignatureProvider::class,
            'eidas_level' => 1,
            'enabled' => true,
        ],

        // Yousign RÉEL (grille V2, 2026-07-10) - signature AVANCÉE eIDAS niv. 2
        // pour les documents à fort enjeu (voir `yousign_kinds` plus bas).
        // 1 crédit YOUSIGN_CREDIT par signataire (packs 337/338/339, valables 1 an).
        // Activer : YOUSIGN_ENABLED=true + YOUSIGN_API_KEY=<clé du forfait API PRO>
        // (sandbox : YOUSIGN_API_URL=https://api-sandbox.yousign.app/v3).
        'yousign' => [
            'driver' => \Rootsud\City\User\Services\Signature\YouSignProvider::class,
            'eidas_level' => 2,
            'enabled' => env('YOUSIGN_ENABLED', false),
            'api_key' => env('YOUSIGN_API_KEY'),
            'api_url' => env('YOUSIGN_API_URL', 'https://api.yousign.app/v3'),
            'workspace_id' => env('YOUSIGN_WORKSPACE_ID'),
            'webhook_secret' => env('YOUSIGN_WEBHOOK_SECRET'),
        ],

        // Slot reserve pour DocuSign EU Advanced (eIDAS 2). Driver a creer
        // selon le meme pattern que StubYouSignProvider.
        // 'docusign' => [
        //     'driver' => \Rootsud\City\User\Services\Signature\StubDocuSignProvider::class,
        //     'eidas_level' => 2,
        //     'enabled' => env('DOCUSIGN_ENABLED', false),
        //     'integration_key' => env('DOCUSIGN_INTEGRATION_KEY'),
        //     'user_id' => env('DOCUSIGN_USER_ID'),
        //     'account_id' => env('DOCUSIGN_ACCOUNT_ID'),
        //     'private_key_path' => env('DOCUSIGN_PRIVATE_KEY_PATH'),
        // ],

        // Slot reserve pour Universign (provider francais eIDAS qualifie 1+2+3).
        // 'universign' => [
        //     'driver' => \Rootsud\City\User\Services\Signature\StubUniversignProvider::class,
        //     'eidas_level' => 3,
        //     'enabled' => env('UNIVERSIGN_ENABLED', false),
        //     'username' => env('UNIVERSIGN_USERNAME'),
        //     'password' => env('UNIVERSIGN_PASSWORD'),
        // ],
    ],

    /**
     * Politique de retention des preuves (donnees signature_data_url stockees
     * en metadata du Lead_proposal). 10 ans = duree minimale legale article
     * L.110-4 code commerce (conservation des actes).
     */
    'evidence_retention_years' => 10,

    /**
     * Grille V2 (2026-07-10) - kinds « à fort enjeu » éligibles au CHOIX du
     * niveau de signature (intégrée eIDAS niv. 1 illimitée VS Yousign niv. 2
     * à crédits) : compromis de vente + tous les baux. Les autres documents
     * (mandats, bons de visite…) restent en signature intégrée.
     */
    'yousign_kinds' => array_merge(
        [\Rootsud\City\User\Models\Lead_proposal::KIND_COMPROMIS],
        \Rootsud\City\User\Models\Lead_proposal::leaseKinds()
    ),
];
