<?php

namespace App\Http\Controllers;

use App\Http\Resources\MenuResource;
use App\Menu;

class MenuController extends Controller
{
    const ITEM_PER_PAGE = 25;

    public function index()
    {
        $list = Menu::with('slider')->select('id', 'name', 'type', 'link', 'category_id', 'parent_id')
        ->isPublished()
        ->orderBy('order')
        ->orderBy('id')
        ->get();
        $rs = $this->getChildItems($list, 0);

        return response()->json(['data' => $rs], 200);
    }

    public function getChildItems($list, $parent = 0) {
        $rs = [];
        foreach ($list as $item) {
            if($item->parent_id == $parent) {
                $item['elements'] = $this->getChildItems($list, $item->id);
                $item['hasChild'] = (count($item['elements']) > 0) ? true : false;
                $rs[] = $item;
            }
        }

        return $rs;
    }

    public function header() {
        $list = Menu::with('slider')->select('id', 'name', 'type', 'link', 'position')
            ->isPublished()
            ->where('position', 'header')
            ->orderBy('order')
            ->orderBy('id')
            ->get();

        return response()->json(['data' => $list], 200);
    }

    public function footer() {
        $list = Menu::with('slider')->select('id', 'name', 'type', 'link', 'position')
            ->isPublished()
            ->where('position', 'footer')
            ->orderBy('order')
            ->orderBy('id')
            ->get();

        return response()->json(['data' => $list], 200);
    }
}
