package com.gic.haoban.manage.api.service.role;

import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.manage.api.dto.qdto.role.ContentMaterialROleInitQDTO;
import com.gic.haoban.manage.api.dto.qdto.role.HaobanRoleQDTO;
import com.gic.haoban.manage.api.dto.role.HaobanRoleDTO;

import java.util.List;

/**
 * @author xuwenqian
 * @date 2022/9/7 9:46 上午
 */
public interface HaobanRoleApiService {

    /**
     * 添加
     *
     * @param haobanRoleQDTO
     * @return {@link ServiceResponse }
     * @author mozhu
     * @date 2022-09-07 11:36:08
     */
    ServiceResponse add(HaobanRoleQDTO haobanRoleQDTO, WebLoginDTO login);


    /**
     * 好办编辑
     *
     * @param haobanRoleQDTO
     * @return {@link ServiceResponse }
     * @author mozhu
     * @date 2022-09-07 11:44:17
     */
    ServiceResponse edit(HaobanRoleQDTO haobanRoleQDTO,WebLoginDTO login);

    /**
     * 获取类型菜单
     *
     * @param wxEnterpriseId wx企业标识
     * @param clerkType      职员类型
     * @return {@link ServiceResponse}
     */
    ServiceResponse<HaobanRoleDTO> getMenuByWxEnterpriseIdAndClerkType(String wxEnterpriseId, Integer clerkType,Integer systemFlag);

    /**
     *
     * 默认生成好办小程序权限
     *
     * @param wxEnterpriseId wx企业标识
     * @return {@link ServiceResponse}
     * @author mozhu
     * @date 2022-09-14 11:07:24
     */
    ServiceResponse addHaobanRole(String wxEnterpriseId);

    /**
     * 角色初始化
     * @param wxEnterpriseId wx企业标识
     * @return {@link ServiceResponse}
     */
    ServiceResponse addHaobanRoleInit(String wxEnterpriseId);


    /**
     * 查询菜单权限
     *
     * @param wxEnterpriseId
     * @param clerkType
     * @param systemFlag
     * @return {@link ServiceResponse }<{@link List }<{@link String }>>
     * @author mozhu
     * @date 2022-10-09 14:16:12
     */
    //无效接口
//    ServiceResponse<List<String>> getMenuCodesByClerkType(String wxEnterpriseId,Integer clerkType,Integer systemFlag);


    /**
     * 内容 权限初始化
     * @return
     */
    ServiceResponse<Void> contentMaterialRoleInit(ContentMaterialROleInitQDTO contentMaterialROleInitQDTO);

    /**
     * 刷新企业权限 单次
     * @param params
     * @return
     */
    @Deprecated
    ServiceResponse<Void> flushRightOneTime(String params);
}
