<?php
declare (strict_types = 1);

namespace app\admin\model\v1;

use app\common\model\SysMenuBaseModel;
use think\model\concern\SoftDelete;

/**
 * 菜单模型
 * @mixin \think\Model
 */
class SysMenuModel extends SysMenuBaseModel
{
    // 启用软删除
    use SoftDelete;

    // 软删除字段
    protected $deleteTime = 'deleted_at';

    // 关联菜单能力权限
    public function menuAbilityPermission()
    {
        return $this->hasMany(SysMenuAbilityPermissionModel::class, 'menu_id', 'id');
    }

    // 菜单标题查询
    public function searchTitleAttr($query, $value, $data)
    {
        if (empty($value)) {
            return;
        }

        $query->where('title', 'like', "%$value%");
    }

    // 状态查询
    public function scopeStatus($query, $value)
    {
        if (empty($value)) {
            return;
        }
        return $query->where('status', '=', $value);
    }

    // 获取启用的菜单
    public function scopeEnabled($query)
    {
        $query->where('status', '=', 1);
    }
}
