<?php

use Diglactic\Breadcrumbs\Breadcrumbs;
use Seka\Portal\Modul\Terminy\Entities\MiestoKonania\MiestoKonania;
use Seka\Portal\Modul\Terminy\Entities\MoznostiUdalosti\MoznostUdalosti;
use Seka\Portal\Modul\Terminy\Entities\Udalost\Udalost;

/**
 * Sprava -> Terminy
 */
Breadcrumbs::for('modul.terminy.backend.index', function ($trail) {
    $trail->parent('portal.sprava.index');
    $trail->push('Termíny', route('modul.terminy.backend.index'));
});

/**
 * Sprava -> Terminy -> Udalosti
 */
Breadcrumbs::for('modul.terminy.backend.udalosti.index', function ($trail) {
    $trail->parent('modul.terminy.backend.index');
    $trail->push('Udalosti', route('modul.terminy.backend.udalosti.index'));
});

/**
 * Sprava -> Terminy -> Udalosti -> Nova udalost
 */
Breadcrumbs::for('modul.terminy.backend.udalosti.udalost.create', function ($trail) {
    $trail->parent('modul.terminy.backend.udalosti.index');
    $trail->push('Nová udalosť', route('modul.terminy.backend.udalosti.udalost.create'));
});

/**
 * Sprava -> Terminy -> Udalosti -> Upravit udalost
 */
Breadcrumbs::for('modul.terminy.backend.udalosti.udalost.edit', function ($trail, $mtUdalostId) {
    // moznost upravit musi mat aj zneplatnena (trashed) udalost
    $udalost = Udalost::withTrashed()->findOrFail($mtUdalostId);

    $trail->parent('modul.terminy.backend.udalosti.index');
    $trail->push($udalost->nazov, route('modul.terminy.backend.udalosti.udalost.edit', $udalost));
});

/**
 * Sprava -> Terminy -> Udalosti -> Udalost -> Registracie
 */
Breadcrumbs::for('modul.terminy.backend.udalosti.udalost.registracie.index', function ($trail, $mtUdalostId) {
    // moznost upravit musi mat aj zneplatnena (trashed) udalost
    $udalost = Udalost::withTrashed()->findOrFail($mtUdalostId);

    $trail->parent('modul.terminy.backend.udalosti.udalost.edit', $mtUdalostId);
    $trail->push('Registrácie', route('modul.terminy.backend.udalosti.udalost.registracie.index', $udalost));
});

/**
 * Sprava -> Terminy -> Udalosti -> Udalost -> Moznosti udalosti
 */
Breadcrumbs::for('modul.terminy.backend.udalosti.udalost.moznosti.index', function ($trail, $mtUdalostId) {
    $udalost = Udalost::withTrashed()->findOrFail($mtUdalostId);

    $trail->parent('modul.terminy.backend.udalosti.udalost.edit', $mtUdalostId);
    $trail->push('Možnosti', route('modul.terminy.backend.udalosti.udalost.moznosti.index', $udalost));
});

/**
 * Sprava -> Terminy -> Registracie
 */
Breadcrumbs::for('modul.terminy.backend.registracie.index', function ($trail) {
    $trail->parent('modul.terminy.backend.index');
    $trail->push('Registrácie', route('modul.terminy.backend.registracie.index'));
});

/**
 * Sprava -> Terminy -> Adresar
 */
Breadcrumbs::for('modul.terminy.backend.adresar.index', function ($trail) {
    $trail->parent('modul.terminy.backend.index');
    $trail->push('Adresár miest', route('modul.terminy.backend.adresar.index'));
});

/**
 * Sprava -> Terminy -> Adresar -> Nove miesto
 */
Breadcrumbs::for('modul.terminy.backend.adresar.miesto.create', function ($trail) {
    $trail->parent('modul.terminy.backend.adresar.index');
    $trail->push('Nové miesto', route('modul.terminy.backend.adresar.miesto.create'));
});

/**
 * Sprava -> Terminy -> Adresar -> Upravit miesto
 */
Breadcrumbs::for('modul.terminy.backend.adresar.miesto.edit', function ($trail, $mtMiestoKonaniaId) {
    // moznost upravit musi mat aj zneplatnene (trashed) miesto konania
    $miestoKonania = MiestoKonania::withTrashed()->findOrFail($mtMiestoKonaniaId);

    $trail->parent('modul.terminy.backend.adresar.index');
    $trail->push('Upraviť miesto', route('modul.terminy.backend.adresar.miesto.edit', $miestoKonania));
});

/**
 * Sprava -> Terminy -> Moznosti udalosti
 */
Breadcrumbs::for('modul.terminy.backend.moznostiUdalosti.index', function ($trail) {
    $trail->parent('modul.terminy.backend.index');
    $trail->push('Kategórie možností', route('modul.terminy.backend.moznostiUdalosti.index'));
});

/**
 * Sprava -> Terminy -> Moznosti udalosti -> Nove moznost
 */
Breadcrumbs::for('modul.terminy.backend.moznostiUdalosti.moznost.create', function ($trail) {
    $trail->parent('modul.terminy.backend.moznostiUdalosti.index');
    $trail->push('Nová možnosť udalosti', route('modul.terminy.backend.moznostiUdalosti.moznost.create'));
});

/**
 * Sprava -> Terminy -> Moznosti udalosti -> Upravit moznost
 */
Breadcrumbs::for('modul.terminy.backend.moznostiUdalosti.moznost.edit', function ($trail, $mtMoznostUdalostiId) {
    // moznost upravit musi mat aj zneplatneny zaznam (trashed) moznosti udalosti
    $moznostUdalosti = MoznostUdalosti::withTrashed()->findOrFail($mtMoznostUdalostiId);

    $trail->parent('modul.terminy.backend.moznostiUdalosti.index');
    $trail->push('Upraviť možnosť udalosti', route('modul.terminy.backend.moznostiUdalosti.moznost.edit', $moznostUdalosti));
});
