<?php
/**
 * Guardado del logo de empresa en el instalador (recorte, original, GIF/vídeo con encuadre).
 */

declare(strict_types=1);

require_once __DIR__ . '/client_logo_ops.php';

/**
 * Procesa $_FILES['companyLogo'] opcional del paso «company» del instalador.
 *
 * @return array{errors: list<string>, saved: bool} saved=true solo si en esta petición se escribió un archivo en disco
 */
function antara_install_company_logo_apply_upload(): array
{
    if (!isset($_FILES['companyLogo']) || !is_array($_FILES['companyLogo'])) {
        return ['errors' => [], 'saved' => false];
    }
    $source = isset($_POST['company_logo_source']) ? (string) $_POST['company_logo_source'] : 'original';
    $frame = antara_media_frame_from_post('company_logo_media_frame');
    $result = antara_client_logo_process_upload($_FILES['companyLogo'], $source, $frame);
    if ($result['saved']) {
        $sf = (defined('GRID_ROOT') ? GRID_ROOT : dirname(__DIR__)) . DIRECTORY_SEPARATOR . 'settings.json';
        $bk = (defined('GRID_ROOT') ? GRID_ROOT : dirname(__DIR__)) . DIRECTORY_SEPARATOR . 'settings.json.bak';
        require_once __DIR__ . '/grid_default_settings.php';
        antara_client_logo_sync_settings($sf, $bk, grid_app_default_settings(), $result['mediaFrame']);
    }

    return ['errors' => $result['errors'], 'saved' => $result['saved']];
}

/**
 * Ruta absoluta del logo guardado en instalación (logo_cliente.*), o null si no existe.
 */
function antara_install_company_logo_resolved_path(): ?string
{
    return antara_client_logo_resolved_path();
}
