<?php

namespace App\Http\Controllers\Tutorials;

use App\Models\Tutorials\Tutorial;
use App\Services\Tutorials\VideoUrlService;
use Illuminate\Http\Request;

class PreviewController
{
    use \Illuminate\Foundation\Auth\Access\AuthorizesRequests;

    /**
     * Muestra el preview del tutorial con el vídeo embebido
     *
     * @param Tutorial $tutorial
     * @return \Illuminate\View\View
     */
    public function show(Tutorial $tutorial)
    {
        // El `permission:` de la ruta ya cubre este caso —es un controlador normal, no
        // un componente Livewire, así que no le pasa lo de MGR-005—, pero se comprueba
        // también aquí: es la única defensa que no se pierde si alguien reorganiza las
        // rutas y saca esta del grupo. Ver known-issues MGR-012.
        $this->authorize('admin.tutorials.version.show');

        $tutorial->load(['tutorialVersion.product', 'creator']);

        $embedUrl = VideoUrlService::buildEmbedUrl($tutorial->platform, $tutorial->videoid);
        $videoUrl = VideoUrlService::buildUrl($tutorial->platform, $tutorial->videoid);

        return view('tutorials.preview', [
            'tutorial' => $tutorial,
            'embedUrl' => $embedUrl,
            'videoUrl' => $videoUrl,
        ]);
    }
}








