ldc-gen-game-web/routes/breadcrumbs.php
2025-08-29 14:46:51 +02:00

221 lines
9.2 KiB
PHP

<?php
use App\Enums\Users\RoleEnum;
use App\Models\ActivityLog;
use App\Models\BannedIp;
use App\Models\FaqQuestion;
use App\Models\FaqTheme;
use App\Models\Participation;
use App\Models\Prize;
use App\Models\Product;
use App\Models\Range;
use App\Models\StaticPage;
use App\Models\Tenant;
use App\Models\User;
use Diglactic\Breadcrumbs\Breadcrumbs;
use Diglactic\Breadcrumbs\Generator;
use Illuminate\Support\Str;
// * BANNED IPS
Breadcrumbs::for('bo.banned_ips.index', function (Generator $trail) {
$trail->push(trans('models.classes.banned_ips'), route('bo.banned_ips.index', ['tenant' => \tenant()]));
});
Breadcrumbs::for('bo.banned_ips.create', function (Generator $trail) {
$trail->parent('bo.banned_ips.index');
$trail->push(trans('crud.actions.create'), route('bo.banned_ips.create', ['tenant' => \tenant()]));
});
Breadcrumbs::for('bo.banned_ips.edit', function (Generator $trail, BannedIp $bannedip) {
$trail->parent('bo.banned_ips.index');
$trail->push(trans('crud.actions.edit'), route('bo.banned_ips.edit', [
'tenant' => \tenant(),
'banned_ip' => $bannedip
]));
});
// * CONTENTS
Breadcrumbs::for('bo.static_pages.index', function (Generator $trail) {
$trail->push(
Str::ucfirst(trans_choice('models.classes.static_page', '*')),
route('bo.static_pages.index', ['tenant' => \tenant()])
);
});
Breadcrumbs::for('bo.static_pages.edit', function (Generator $trail, StaticPage $page) {
$trail->parent('bo.static_pages.index');
$trail->push(trans('crud.actions.edit'), route('bo.static_pages.edit', [
'tenant' => \tenant(),
'static_page' => $page
]));
});
// * FAQ - QUESTIONS
Breadcrumbs::for('bo.faq-questions.index', function (Generator $trail) {
$trail->push(
trans_choice('models.classes.faq-questions', 2),
route('bo.faq-questions.index', ['tenant' => \tenant()])
);
});
Breadcrumbs::for('bo.faq-questions.create', function (Generator $trail) {
$trail->parent('bo.faq-questions.index');
$trail->push(trans('crud.actions.create'), route('bo.faq-questions.create', ['tenant' => \tenant()]));
});
Breadcrumbs::for('bo.faq-questions.edit', function (Generator $trail, FaqQuestion $faqQuestion) {
$trail->parent('bo.faq-questions.index');
$trail->push(trans('crud.actions.edit'), route('bo.faq-questions.edit', [
'tenant' => \tenant(),
'faq_question' => $faqQuestion
]));
});
// * FAQ - THEMES
Breadcrumbs::for('bo.faq-themes.index', function (Generator $trail) {
$trail->push(trans_choice('models.classes.faq-themes', 2), route('bo.faq-themes.index', ['tenant' => \tenant()]));
});
Breadcrumbs::for('bo.faq-themes.create', function (Generator $trail) {
$trail->parent('bo.faq-themes.index');
$trail->push(trans('crud.actions.create'), route('bo.faq-themes.create', ['tenant' => \tenant()]));
});
Breadcrumbs::for('bo.faq-themes.edit', function (Generator $trail, FaqTheme $faqTheme) {
$trail->parent('bo.faq-themes.index');
$trail->push(trans('crud.actions.edit'), route('bo.faq-themes.edit', [
'tenant' => \tenant(),
'faq_theme' => $faqTheme
]));
});
// * PRIZES
Breadcrumbs::for('bo.prizes.index', function (Generator $trail) {
$trail->push(
Str::ucfirst(trans_choice('models.classes.prize', 2)),
route('bo.prizes.index', ['tenant' => \tenant()])
);
});
Breadcrumbs::for('bo.prizes.create', function (Generator $trail) {
$trail->parent('bo.prizes.index');
$trail->push(trans('crud.actions.create'), route('bo.prizes.create', ['tenant' => \tenant()]));
});
Breadcrumbs::for('bo.prizes.edit', function (Generator $trail, Prize $prize) {
$trail->parent('bo.prizes.index');
$trail->push(trans('crud.actions.edit'), route('bo.prizes.edit', ['tenant' => \tenant(), 'prize' => $prize]));
});
Breadcrumbs::for('bo.prizes.show', function (Generator $trail, Prize $prize) {
$trail->parent('bo.prizes.index');
$trail->push(trans('crud.actions.view'), route('bo.prizes.show', ['tenant' => \tenant(), 'prize' => $prize]));
});
// * RANGES
Breadcrumbs::for('bo.ranges.index', function (Generator $trail) {
$trail->push(Str::plural(trans('models.classes.range')), route('bo.ranges.index', ['tenant' => \tenant()]));
});
Breadcrumbs::for('bo.ranges.create', function (Generator $trail) {
$trail->parent('bo.ranges.index');
$trail->push(trans('crud.actions.create'), route('bo.ranges.create', ['tenant' => \tenant()]));
});
Breadcrumbs::for('bo.ranges.edit', function (Generator $trail, Range $range) {
$trail->parent('bo.ranges.index');
$trail->push(trans('crud.actions.edit'), route('bo.ranges.edit', ['tenant' => \tenant(), 'range' => $range]));
});
Breadcrumbs::for('bo.ranges.show', function (Generator $trail, Range $range) {
$trail->parent('bo.ranges.index');
$trail->push(trans('crud.actions.view'), route('bo.ranges.show', ['tenant' => \tenant(), 'range' => $range]));
});
// * PRODUCTS
Breadcrumbs::for('bo.products.index', function (Generator $trail) {
$trail->push(Str::plural(trans('models.classes.product')), route('bo.products.index', ['tenant' => \tenant()]));
});
Breadcrumbs::for('bo.products.create', function (Generator $trail) {
$trail->parent('bo.products.index');
$trail->push(trans('crud.actions.create'), route('bo.products.create', ['tenant' => \tenant()]));
});
Breadcrumbs::for('bo.products.edit', function (Generator $trail, Product $product) {
$trail->parent('bo.products.index');
$trail->push(trans('crud.actions.edit'), route('bo.products.edit', ['tenant' => \tenant(), 'product' => $product]));
});
Breadcrumbs::for('bo.products.show', function (Generator $trail, Product $product) {
$trail->parent('bo.products.index');
$trail->push(trans('crud.actions.view'), route('bo.products.show', ['tenant' => \tenant(), 'product' => $product]));
});
// * SETTINGS
Breadcrumbs::for('bo.settings.edit', function (Generator $trail) {
$trail->push(Str::ucfirst(trans('models.classes.settings')), route('bo.products.index', ['tenant' => \tenant()]));
});
// * WINNERS LIST
Breadcrumbs::for('bo.participations.winners-list', function (Generator $trail) {
$trail->push(
Str::of(trans('models.classes.winner'))->ucfirst()->plural(),
route('bo.participations.winners-list', ['tenant' => \tenant()])
);
});
Breadcrumbs::for('bo.participations.set-comment', function (Generator $trail, Participation $participation) {
$trail->parent('bo.participations.winners-list');
$trail->push(
Str::ucfirst(trans('validation.custom.comment')),
route('bo.participations.set-comment', ['tenant' => \tenant(), 'participation' => $participation])
);
});
// * UNIQUES CODES
Breadcrumbs::for('bo.codes.index', function (Generator $trail) {
$trail->push(
Str::of(trans('validation.custom.unique_code'))->plural()->ucfirst(),
route('bo.codes.index', ['tenant' => \tenant()])
);
});
Breadcrumbs::for('bo.codes.search', function (Generator $trail) {
$trail->parent('bo.codes.index');
$trail->push(Str::ucfirst(trans('crud.actions.view')), route('bo.codes.search', ['tenant' => \tenant()]));
});
// * USERS
Breadcrumbs::for('bo.users.index', function (Generator $trail) {
$trail->push(
Str::of(trans('models.classes.user'))->plural()->ucfirst(),
(auth('backend')->user()->role->equals(RoleEnum::conceptor)) ? route('bo.users.index') : null
);
});
Breadcrumbs::for('bo.users.create', function (Generator $trail) {
$trail->parent('bo.users.index');
$trail->push(trans('crud.actions.create'), route('bo.users.create'));
});
Breadcrumbs::for('bo.users.edit', function (Generator $trail, User $user) {
$trail->parent('bo.users.index');
$trail->push(trans('crud.actions.edit'), route('bo.users.edit', $user));
});
Breadcrumbs::for('bo.users.show', function (Generator $trail, User $user) {
$trail->parent('bo.users.index');
$trail->push(trans('crud.actions.view'), route('bo.users.show', $user));
});
// * TENANTS
Breadcrumbs::for('bo.tenants.index', function (Generator $trail) {
$trail->push(Str::of(trans('models.classes.tenant'))->plural()->ucFirst(), route('bo.tenants.index'));
});
Breadcrumbs::for('bo.tenants.create', function (Generator $trail) {
$trail->parent('bo.tenants.index');
$trail->push(trans('crud.actions.create'), route('bo.tenants.create'));
});
Breadcrumbs::for('bo.tenants.edit', function (Generator $trail, Tenant $tenant) {
$trail->parent('bo.tenants.index');
$trail->push(trans('crud.actions.edit'), route('bo.tenants.edit', $tenant));
});
Breadcrumbs::for('bo.tenants.show', function (Generator $trail, Tenant $tenant) {
$trail->parent('bo.tenants.index');
$trail->push(trans('crud.actions.view'), route('bo.tenants.show', $tenant));
});
// * ACTIVITY LOGS
Breadcrumbs::for('bo.activity_logs.index', function (Generator $trail) {
$trail->push(
Str::plural(trans('models.classes.activity_log')),
route('bo.activity_logs.index', ['tenant' => \tenant()])
);
});
Breadcrumbs::for('bo.activity_logs.show', function (Generator $trail, ActivityLog $activity_log) {
$trail->parent('bo.activity_logs.index');
$trail->push(trans('crud.actions.view'), route('bo.activity_logs.show', [
'tenant' => \tenant(),
'activity_log' => $activity_log
]));
});