<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Resources\Themes;
use App\Http\Resources\ThemesCollection;
use App\Http\Controllers\Traits\TaxonomyHelper;
use App\Models\Theme;

class ThemeController extends Controller
{
    use TaxonomyHelper;

    /**
     * Get all themes and their children
     *
     * @return \Illuminate\Http\JsonResponse
     */
    public function index()
    {
        $query = Theme::full()
            ->select('id',
                'language_id',
                'title',
                'website_objects.website_object_id',
                'website_objects.parent_id',
                'icon_id'
            )
            ->with('icon')
            ->orderBy('website_objects.position', 'asc');

        $themes = $query->get();

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

        // Loop through all parents.
        $parentsResponse = [];
        forEach ($parents as $key => $parent) {
            if (!is_null($parent->icon_id)) {
                $theme = new Themes($parent);
                $parentsResponse[] = $theme;
            }
        }

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