<?php
declare(strict_types=1);
require_once dirname(__FILE__) . '/../config.php';

/*
 * GET /profile/photo.php
 * Devuelve la URL de la foto de perfil del distribuidor autenticado.
 */

if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
    jsonErr(405, 'Método no permitido.');
}

$jwt   = auth();
$idinv = (int)$jwt['idinv'];

try {
    $db = getDB();
    $stmt = $db->prepare("SELECT foto FROM inversionista WHERE id_inver = ? LIMIT 1");
    $stmt->execute([$idinv]);
    $row = $stmt->fetch(PDO::FETCH_ASSOC);

    $photoUrl = $row['foto'] ?? null;

    // Si hay URL guardada, verificar que el archivo físico existe
    if ($photoUrl) {
        $filePath = dirname(__FILE__) . '/../uploads/profiles/' . $idinv . '.jpg';
        if (!file_exists($filePath)) {
            $photoUrl = null;
        } else {
            // Añadir cache-buster basado en la fecha de modificación del archivo
            $mtime = filemtime($filePath);
            $photoUrl = rtrim($photoUrl, '/') . '?v=' . $mtime;
        }
    }

    jsonOk(['photo_url' => $photoUrl]);
} catch (Throwable $e) {
    jsonErr(500, 'Error al obtener la foto: ' . $e->getMessage());
}
