<?php
namespace front\Views;

class ShopCategory
{
    public static function categoryDescription($category): string
    {
        return \Shared\Tpl\Tpl::view('shop-category/category-description', [
            'category' => $category,
        ]);
    }

    public static function categoryView($category, string $langId, int $currentPage = 1): string
    {
        global $settings, $page;

        $categoryRepo = new \Domain\Category\CategoryRepository($GLOBALS['mdb']);

        if (!$settings['infinitescroll']) {
            $results = $categoryRepo->paginatedCategoryProducts(
                (int)$category['id'],
                (int)($category['sort_type'] ?? 0),
                $langId,
                $currentPage
            );

            $pager = '';
            if ($results['ls'] > 1) {
                $tpl = new \Shared\Tpl\Tpl;
                $tpl->ls = $results['ls'];
                $tpl->bs = $currentPage > 0 ? $currentPage : 1;
                $tpl->page = $page;
                $tpl->link = !empty($category['language']['seo_link'])
                    ? $category['language']['seo_link']
                    : 'k-' . $category['id'] . '-' . \Shared\Helpers\Helpers::seo($category['language']['title'] ?? '');
                $pager = $tpl->render('site/pager');
            }

            return \Shared\Tpl\Tpl::view('shop-category/category', [
                'category' => $category,
                'products' => $results['products'],
                'pager' => $pager,
                'category_description' => $currentPage <= 1,
                'category_additional_text' => true,
            ]);
        }

        $productsCount = $categoryRepo->categoryProductsCount((int)$category['id'], $langId);

        return \Shared\Tpl\Tpl::view('shop-category/category-infinitescroll', [
            'category' => $category,
            'products_count' => $productsCount,
            'category_description' => $currentPage <= 1,
            'category_additional_text' => true,
        ]);
    }

    public static function categories($categories, $currentCategory = 0, $level = 0): string
    {
        $tpl = new \Shared\Tpl\Tpl;
        $tpl->level = $level;
        $tpl->current_category = $currentCategory;
        $tpl->categories = $categories;
        return $tpl->render('shop-category/categories');
    }
}
