<?php

use App\Models\{User, Category, Product, Page, Blog};

use Diglactic\Breadcrumbs\Breadcrumbs;
use Illuminate\Http\Request;
use Diglactic\Breadcrumbs\Generator as BreadcrumbTrail;

Breadcrumbs::for('homepage', function (BreadcrumbTrail $trail) {
     $trail->push('Начало', route('homepage'));
});

Breadcrumbs::for('category.index', function (BreadcrumbTrail $trail, Category $category, $language): void {
    $trail->parent('homepage');
    if ($category->type == 1) {
      $parent = Category::where('id', $category->parent_id)
                          ->with('translation', fn($query) => $query->where('language', $language))
                          ->first();
      $trail->push($parent->translation->title, route('category.index', $parent->translation->slug));
      $trail->push($category->translation->title, route('category.index', ['slug' => $parent->translation->slug, 'subslug' => $category->translation->slug]));
    }else{
      $trail->push($category->translation->title, route('category.index', ['slug' => $category->translation->slug]));
    }
});


Breadcrumbs::for('product.show', function (BreadcrumbTrail $trail, Product $product, $language): void {
    $trail->parent('homepage');

    $trail->push($product->category->translation->title, route('category.index', $product->category->translation->slug));

    if ($product->scat_id > 0) {
      $trail->push($product->subcategory->translation->title, route('category.index', [
        'slug' => $product->category->translation->slug,
        'subslug' => $product->subcategory->translation->slug
      ]));
    }

    $trail->push($product->translation?->title, route('product.show', [
      'rewrite' => $product->translation?->slug . '-'.$product->id
    ]));
});


Breadcrumbs::for('info.index', function (BreadcrumbTrail $trail, Page $page, $language): void {
    $trail->parent('homepage');

    $trail->push($page->translation->title, route('info.index', ['slug' => $page->translation->slug]));
});

Breadcrumbs::for('blog', function (BreadcrumbTrail $trail): void {
    $trail->parent('homepage');
    $trail->push('Блог', route('blog'));
});

Breadcrumbs::for('blog.show', function (BreadcrumbTrail $trail, Blog $blog, $language): void {
  $trail->parent('homepage');
    $trail->push('Блог', '/info/blog');
    $trail->push($blog->translation->title, route('blog.show', ['slug' => $blog->translation->slug]));
});

Breadcrumbs::for('search.index', function (BreadcrumbTrail $trail) {
     $trail->push('Начало', route('homepage'));
     $trail->push('Търсене', route('search.index', ['keyword'=>request('keyword')]));
});

Breadcrumbs::for('promotions', function (BreadcrumbTrail $trail) {
     $trail->push('Начало', route('homepage'));
     $trail->push('Промоции', route('promotions'));
});

Breadcrumbs::for('specials', function (BreadcrumbTrail $trail) {
     $trail->push('Начало', route('homepage'));
     $trail->push('Специални предложения', route('specials'));
});
?>
