<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Collection;

use App\Http\Resources\MenuItemChildCollection as MenuItemChildCollectionResource;
use App\Http\Resources\MenuItemChild as MenuItemChildResource;

class MenuItems extends JsonResource
{

    private $groupLinks = false;
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */

    public function __construct($resource, $groupLinks = FALSE)
    {
        $this->groupLinks = $groupLinks;
        $this->resource = $resource;
    }

    public function toArray($request)
    {
        $out = [
            'id'        => $this->menu_item_id,
            'title'     => $this->title,
            'url'       => $this->url,
            'active'    => (bool)$this->active,
        ];

        if ($this->groupLinks) {
            $leftMenu = [];
            $rightMenu = [];
            foreach ($this->children as $children) {
                if ($children->alignment === 'left') {
                    $leftMenu[] = new MenuItemChildResource($children);
                } elseif ($children->alignment === 'right') {
                    $rightMenu[] = new MenuItemChildResource($children);
                }
            }
            $out['children'] = $leftMenu; //! This is supposed to be $out['leftMenu'] but i changed to $out['children'] so it matches the frontend
            $out['links'] = $rightMenu; //! This is supposed to be $out['rightMenu']but i changed  to $out['links'] so it matches the frontend
        } else {
            $out['children'] = MenuItemChildResource::collection($this->children);
        }

        return $out;
    }
}
