<?php

namespace App\Http\Controllers\Pwa;

use App\Http\Controllers\Controller;
use Illuminate\Http\JsonResponse;

/**
 * Expone la versión del build desplegado (commit + fecha) en /pwa/version.
 *
 * La fuente de verdad es public/build/version.json, generado por Vite en cada
 * `npm run build` (ver vite.config.js). Permite verificar qué deploy está
 * sirviendo el servidor sin DevTools y compararlo con la versión del Service
 * Worker activo (que la PWA obtiene vía postMessage GET_VERSION).
 */
class VersionController extends Controller
{
    public function __invoke(): JsonResponse
    {
        $path = public_path('build/version.json');

        if (! is_file($path)) {
            return response()->json([
                'version' => 'dev',
                'commit' => 'unknown',
                'builtAt' => null,
            ]);
        }

        /** @var array{version?: string, commit?: string, builtAt?: string|null} $data */
        $data = json_decode((string) file_get_contents($path), true) ?: [];

        return response()->json([
            'version' => $data['version'] ?? 'unknown',
            'commit' => $data['commit'] ?? 'unknown',
            'builtAt' => $data['builtAt'] ?? null,
        ]);
    }
}
