<?php

namespace app\services;

use app\helpers\Debug;
use kernel\FormModel;
use kernel\models\Menu;

class MenuService
{

    public function create(FormModel $form_model): false|Menu
    {
        $model = new Menu();
        $model->parent_id = $form_model->getItem('parent_id');
        $model->icon_file = $form_model->getItem('icon_file');
        $model->icon_font = $form_model->getItem('icon_font');
        $model->label = $form_model->getItem('label');
        $model->url = $form_model->getItem('url');
        $model->status = $form_model->getItem('status');
        if ($model->save()){
            return $model;
        }

        return false;
    }

    public function update(FormModel $form_model, Menu $menuItem): false|Menu
    {
        $menuItem->parent_id = $form_model->getItem('parent_id');
        $menuItem->icon_file = $form_model->getItem('icon_file');
        $menuItem->icon_font = $form_model->getItem('icon_font');
        $menuItem->label = $form_model->getItem('label');
        $menuItem->url = $form_model->getItem('url');
        $menuItem->status = $form_model->getItem('status');
        if ($menuItem->save()){
            return $menuItem;
        }

        return false;
    }

    public static function createLabelArr(): array
    {
        $labelArr[0] = "Корневой пункт меню";
        foreach (Menu::where("parent_id", 0)->get()->toArray() as $menuItem) {
            $labelArr[$menuItem['id']] = $menuItem['label'];
        }
        if (!empty($labelArr)) {
            return $labelArr;
        }
        return [];
    }

}