<?php

namespace App\Models\Manage;

use App\Models\Base;
use Illuminate\Support\Facades\Cache;

class Menu extends Base
{
    protected $table = 'gl_manage_menu';

    const STATUS_NORMAL = 1;
    const STATUS_ABNORMAL = 0;

    const TYPE_MENU = 0;
    const TYPE_NODE = 1;

    /**
     * @return string[]
     */
    public static function statusMap(): array
    {
        return [
            self::STATUS_NORMAL => '正常',
            self::STATUS_ABNORMAL => '禁用',
        ];
    }

    /**
     * @return string[]
     */
    public static function typeMap(): array
    {
        return [
            self::TYPE_MENU => '菜单',
            self::TYPE_NODE => '权限节点',
        ];
    }

    /**
     * @param $route_name
     * @return mixed
     * @author zbj
     * @date 2023/4/25
     */
    public static function getByRouteName($route_name){
        $cache_key = 'manage_menu_'.$route_name;
        $data = Cache::get($cache_key);
        if(!$data){
            $data = self::where('route_name', $route_name)->first();
            if($data){
                Cache::put($cache_key, $data);
            }
        }
        return $data;
    }

    public static function clearCache($row){
        $cache_key = 'manage_menu_' . $row->original['route_name'];
        Cache::forget($cache_key);
    }
}