<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Resources\Categories;
use App\Http\Controllers\Traits\TaxonomyHelper;
use App\Models\Category;

class CategoryController extends Controller
{

    use TaxonomyHelper;
    /**
     * Get all categories and their children
     *
     * @return \Illuminate\Http\JsonResponse
     */
    public function index()
    {

        $query = Category::full()
            ->select(
                'id',
                'language_id',
                'title',
                'website_objects.website_object_id',
                'parent_id'
            );

        $categories = $query->get();

        $parents = $this->_buildHierarchy($categories);

        // Loop through all parents.
        $parentsResponse = [];
        forEach ($parents as $key => $parent) {
            $category = new Categories($parent);
            $parentsResponse[] = $category;
        }

        return response()->json($parentsResponse);
    }
}
