<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Resources\Roles;
use App\Http\Controllers\Traits\TaxonomyHelper;
use App\Models\Role;

class RoleController extends Controller
{

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

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

        $roles = $query->get();

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

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

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