<?php

namespace App\Livewire\Tutorials;

use App\Models\Tutorials\TutorialVersion;
use App\Models\Products\Product;
use App\Livewire\Traits\HasVersionIndex;
use Livewire\Component;
use Illuminate\Database\Eloquent\Model;

class Index extends Component
{
    use HasVersionIndex;

    protected function getVersionModel(): string
    {
        return TutorialVersion::class;
    }

    protected function getCountRelation(): string
    {
        return 'tutorials';
    }

    protected function getCreateSuccessMessage(string $version): string
    {
        return "Nueva versión de Tutoriales creada: {$version}";
    }

    protected function getVersionShowRoute(Product $product, Model $version): string
    {
        return route('products.tutorials.version.show', [$product, $version]);
    }

    protected function getDuplicateParameterName(): string
    {
        return 'tutorialVersionId';
    }

    public function render()
    {
        $tutorialVersions = $this->getVersionsQuery()->paginate(20);

        return view('livewire.tutorials.index', [
            'tutorialVersions' => $tutorialVersions,
            'product' => $this->product,
        ])->layout('layouts.app');
    }
}


