package com.simuwang.base.pojo.dto.sys;

import com.simuwang.base.common.support.command.BaseAddCmd;
import com.simuwang.base.pojo.dos.sys.SysMenuDO;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;

/**
 * @author wangzaijun
 * @date 2024/9/13 17:26
 * @description 新增菜单的接口请求参数
 */
@Setter
@Getter
public class MenuAddCmd extends BaseAddCmd<SysMenuDO> {
    /**
     * 上级菜单
     */
    @NotNull(message = "上级菜单不能为空")
    private Integer parentId;
    /**
     * 菜单名称
     */
    @NotBlank(message = "菜单名称不能为空")
    private String menuName;
    /**
     * 权限标识
     */
    @NotBlank(message = "权限标识不能为空")
    private String perms;
    /**
     * 类型（M目录 C菜单 F按钮）
     */
    private String menuType;
    /**
     * 路由地址
     */
    private String path;
    /**
     * 组件路径
     */
    private String component;
    /**
     * 显示状态（0显示 1隐藏）
     */
    private Integer visible;
    /**
     * 菜单状态
     */
    private Integer status;

    @Override
    public SysMenuDO toEntity() {
        SysMenuDO entity = new SysMenuDO();
        entity.setParentId(this.parentId);
        entity.setMenuName(this.menuName);
        entity.setMenuType(this.menuType);
        entity.setPerms(this.perms);
        entity.setPath(this.path);
        entity.setComponent(this.component);
        entity.setVisible(this.visible);
        entity.setStatus(this.status);
        return entity;
    }
}
