package com.hotent.orgext.manager;

import com.hotent.base.manager.BaseManager;
import com.hotent.base.query.PageList;
import com.hotent.base.query.QueryFilter;
import com.hotent.orgext.model.OrgAuthExt;
import com.hotent.orgext.vo.AppModelVo;
import com.hotent.orgext.vo.RoleVo;
import com.hotent.orgext.vo.SysAppVo;
import com.hotent.uc.model.Role;
import org.apache.ibatis.annotations.Param;

/**
 * 分级组织和角色/菜单/应用授权表
 * @author: 梁宏锦
 * @date: 2024/07/13
 **/
public interface OrgAuthExtManager extends BaseManager<OrgAuthExt> {
    /**
     * 根据类型批量删除 组织关系
     * @param orgId
     * @param authType
     */
    void removeByOrgIdAndType(String orgId, String authType);
    /**
     * 根据类型批量删除 应用关系
     * @param appId
     * @param authType
     */
    void removeByAppIdAndType(String appId, String authType);

    void removeByOrgIdAndRoleId(String orgId, String roleId);

    //查询角色(组织授权扩展)
    PageList<RoleVo> queryRoleAuthExt(QueryFilter queryFilter);

    //查询组织和PC应用关系信息(组织授权扩展)
    PageList<SysAppVo> getSysAppAuthExtPage(QueryFilter queryFilter);

    PageList<SysAppVo> querySysAppExtListFirst(QueryFilter queryFilter, String extOrgId);

    PageList<SysAppVo> querySysAppExtListOther(QueryFilter queryFilter, String extParentOrgId, String extOrgId);

    //查询组织和移动应用关系信息(组织授权扩展)
    PageList<AppModelVo> getMobileAppAuthExtPage(QueryFilter queryFilter);

    PageList<AppModelVo> queryMobileAppExtListFirst(QueryFilter queryFilter, String extOrgId);

    PageList<AppModelVo> queryMobileAppExtListOther(QueryFilter queryFilter, String extParentOrgId, String extOrgId);
}
