<?php

use Illuminate\Support\Str;
use Seka\Vzdelavanie\Models\Testovanie\Test;
use Seka\Vzdelavanie\Models\Testovanie\Otazka;
use Seka\Vzdelavanie\Models\Testovanie\Odpoved;
use DaveJamesMiller\Breadcrumbs\Facades\Breadcrumbs;

// Vzdelavanie > Sprava > Testovanie
Breadcrumbs::for('vzdelavanie.sprava.testovanie.index', function ($trail) {
    $trail->parent('vzdelavanie.sprava.index');
    $trail->push('Testovanie', route('vzdelavanie.sprava.testovanie.index'));
});

// Vzdelavanie > Sprava > Testovanie > Testy
Breadcrumbs::for('vzdelavanie.sprava.testovanie.testy.index', function ($trail) {
    $trail->parent('vzdelavanie.sprava.testovanie.index');
    $trail->push('Testy', route('vzdelavanie.sprava.testovanie.testy.index'));
});

// Vzdelavanie > Sprava > Testovanie > Testy > Novy
Breadcrumbs::for('vzdelavanie.sprava.testovanie.testy.create', function ($trail) {
    $trail->parent('vzdelavanie.sprava.testovanie.testy.index');
    $trail->push('Nový test');
});

// Vzdelavanie > Sprava > Testovanie > Testy > [Test]
Breadcrumbs::for('vzdelavanie.sprava.testovanie.testy.edit', function ($trail, $vzdTstTstId) {
    $test = Test::query()->findOrFail($vzdTstTstId);
    $trail->parent('vzdelavanie.sprava.testovanie.testy.index');
    $trail->push(Str::limit($test->nazov, 20), route('vzdelavanie.sprava.testovanie.testy.edit', $test));
});

// Vzdelavanie > Sprava > Testovanie > Testy > [Test]
Breadcrumbs::for('vzdelavanie.sprava.testovanie.testy.update', function ($trail, $vzdTstTstId) {
    $test = Test::query()->findOrFail($vzdTstTstId);
    $trail->parent('vzdelavanie.sprava.testovanie.testy.index');
    $trail->push(Str::limit($test->nazov, 20), route('vzdelavanie.sprava.testovanie.testy.edit', $test));
});

// Vzdelavanie > Sprava > Testovanie > Testy > [Test] > Otazky
Breadcrumbs::for('vzdelavanie.sprava.testovanie.testy.otazky.index', function ($trail, $vzdTstTstId) {
    $test = Test::query()->findOrFail($vzdTstTstId);
    $trail->parent('vzdelavanie.sprava.testovanie.testy.edit', $test->id);
    $trail->push('Otázky', route('vzdelavanie.sprava.testovanie.testy.otazky.index', $test));
});

// Vzdelavanie > Sprava > Testovanie > Testy > [Test] > Otazky > Nova
Breadcrumbs::for('vzdelavanie.sprava.testovanie.testy.otazky.create', function ($trail, $vzdTstTstId) {
    $test = Test::query()->findOrFail($vzdTstTstId);
    $trail->parent('vzdelavanie.sprava.testovanie.testy.otazky.index', $test->id);
    $trail->push('Nová otázka');
});

// Vzdelavanie > Sprava > Testovanie > Testy > [Test] > Otazky > [Otazka]
Breadcrumbs::for('vzdelavanie.sprava.testovanie.testy.otazky.edit', function ($trail, $vzdTstTstId, $vzdTstOtzkId) {
    $test = Test::query()->findOrFail($vzdTstTstId);
    $otazka = Otazka::query()->findOrFail($vzdTstOtzkId);
    $trail->parent('vzdelavanie.sprava.testovanie.testy.otazky.index', $test->id);
    $trail->push(Str::limit($otazka->znenie, 20), route('vzdelavanie.sprava.testovanie.testy.otazky.edit', [$test, $otazka]));
});

// Vzdelavanie > Sprava > Testovanie > Testy > [Test] > Otazky > [Otazka]
Breadcrumbs::for('vzdelavanie.sprava.testovanie.testy.otazky.update', function ($trail, $vzdTstTstId, $vzdTstOtzkId) {
    $test = Test::query()->findOrFail($vzdTstTstId);
    $otazka = Otazka::query()->findOrFail($vzdTstOtzkId);
    $trail->parent('vzdelavanie.sprava.testovanie.testy.otazky.index', $test->id);
    $trail->push(Str::limit($otazka->znenie, 20), route('vzdelavanie.sprava.testovanie.testy.otazky.edit', [$test, $otazka]));
});

// Vzdelavanie > Sprava > Testovanie > Testy > [Test] > Otazky > [Otazka] > Odpovede
Breadcrumbs::for('vzdelavanie.sprava.testovanie.testy.otazky.odpovede.index', function ($trail, $vzdTstTstId, $vzdTstOtzkId) {
    $test = Test::query()->findOrFail($vzdTstTstId);
    $otazka = Otazka::query()->findOrFail($vzdTstOtzkId);
    $trail->parent('vzdelavanie.sprava.testovanie.testy.otazky.edit', $test->id, $otazka->id);
    $trail->push('Odpovede', route('vzdelavanie.sprava.testovanie.testy.otazky.odpovede.index', [$test, $otazka]));
});

// Vzdelavanie > Sprava > Testovanie > Testy > [Test] > Otazky > [Otazka] > Odpovede > Nova
Breadcrumbs::for('vzdelavanie.sprava.testovanie.testy.otazky.odpovede.create', function ($trail, $vzdTstTstId, $vzdTstOtzkId) {
    $test = Test::query()->findOrFail($vzdTstTstId);
    $otazka = Otazka::query()->findOrFail($vzdTstOtzkId);
    $trail->parent('vzdelavanie.sprava.testovanie.testy.otazky.odpovede.index', $test->id, $otazka->id);
    $trail->push('Nová odpoveď', route('vzdelavanie.sprava.testovanie.testy.otazky.odpovede.create', [$test, $otazka]));
});

// Vzdelavanie > Sprava > Testovanie > Testy > [Test] > Otazky > [Otazka] > Odpovede > [Odpoved]
Breadcrumbs::for('vzdelavanie.sprava.testovanie.testy.otazky.odpovede.edit', function ($trail, $vzdTstTstId, $vzdTstOtzkId, $vzdTstOdpvdId) {
    $test = Test::query()->findOrFail($vzdTstTstId);
    $otazka = Otazka::query()->findOrFail($vzdTstOtzkId);
    $odpoved = Odpoved::query()->findOrFail($vzdTstOdpvdId);
    $trail->parent('vzdelavanie.sprava.testovanie.testy.otazky.odpovede.index', $test->id, $otazka->id);
    $trail->push(Str::limit($odpoved->znenie, 20), route('vzdelavanie.sprava.testovanie.testy.otazky.odpovede.edit', [$test, $otazka, $odpoved]));
});


// Vzdelavanie > Sprava > Testovanie > Pouzivatelia
Breadcrumbs::for('vzdelavanie.sprava.testovanie.pouzivatelia.index', function ($trail) {
    $trail->parent('vzdelavanie.sprava.testovanie.index');
    $trail->push('Testy používateľov', route('vzdelavanie.sprava.testovanie.pouzivatelia.index'));
});

