<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Llamadas del Manager HACIA el Moodle
    |--------------------------------------------------------------------------
    |
    | Todo lo demás en este proyecto es tráfico entrante: el Moodle llama y el
    | Manager responde. Esto es lo contrario, y por eso va con interruptor propio:
    | si un día hay que cortar la salida a internet del Manager, se apaga aquí sin
    | tocar código ni desplegar.
    |
    */

    'sync' => [

        // Interruptor general del botón "Sincronizar ahora".
        'enabled' => env('MOODLE_SYNC_ENABLED', true),

        // Segundos de espera a que el Moodle termine.
        //
        // Es generoso a propósito: el Moodle recoge su inventario de plugins y
        // acto seguido llama a nuestra API, así que el reloj cubre las dos cosas.
        // Nada que ver con los 4 segundos con los que el PLUGIN nos llama a
        // nosotros (`tip::TIMEOUT`, ver api-contract.md): ahí el que espera es una
        // página de Moodle cargando; aquí, una persona que ha pulsado un botón.
        'timeout' => (int) env('MOODLE_SYNC_TIMEOUT', 30),

        // Espera solo para establecer la conexión. Corto: si el sitio no está,
        // se sabe enseguida y no se tiene a nadie mirando una rueda 30 segundos.
        'connect_timeout' => (int) env('MOODLE_SYNC_CONNECT_TIMEOUT', 5),

        // Segundos que un entorno queda bloqueado tras lanzarle una
        // sincronización. Evita que dos clics —o dos personas— manden al mismo
        // Moodle a hacer el mismo trabajo dos veces. Es cortesía con el sitio del
        // cliente, no un límite de abuso.
        'cooldown_seconds' => (int) env('MOODLE_SYNC_COOLDOWN', 60),

        /*
        |----------------------------------------------------------------------
        | Verificación del certificado HTTPS del Moodle
        |----------------------------------------------------------------------
        |
        | **Activada, y no se toca en producción.** Desactivarla convierte la
        | llamada en algo que cualquiera en medio puede interceptar, y lo que se
        | manda es el token de servicios web de administración del Moodle de un
        | cliente.
        |
        | Existe por dos casos reales:
        |
        | 1. **Desarrollo local.** Laragon sirve los dominios `.dev` y `.test` con
        |    un certificado autofirmado, así que el Manager no puede llamar a
        |    ningún Moodle local: `cURL error 60`.
        | 2. Un cliente con **CA interna** que este servidor no conoce. Ahí la
        |    solución buena es instalar esa CA en el servidor, no apagar esto.
        |
        | Solo por `.env`: no se configura desde el panel a propósito, porque es
        | una decisión de seguridad del servidor y no una preferencia de uso.
        */
        'verify_ssl' => env('MOODLE_SYNC_VERIFY_SSL', true),
    ],

];
