package cn.ezhizao.project.tenant.mapper;

import cn.ezhizao.project.setting.domain.BizSource;
import cn.ezhizao.project.system.domain.SysDept;
import cn.ezhizao.project.system.domain.SysRole;
import cn.ezhizao.project.system.domain.SysUser;
import cn.ezhizao.project.tenant.domain.Tenant;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 租户
 *
 * @author ruoyi
 */
@Mapper
public interface TenantMapper extends BaseMapper<Tenant>
{
    List<Tenant> getList(Tenant tenant);

    /**
     * 判断租户中是否有管理员角色
     * @param tenantId 租户id
     * @return 判断结果
     */
    boolean checkAdminRole(Long tenantId);

    /**
     * 判断租户中是否有管理员角色对应人员
     * @param tenantId 租户id
     * @return 判断结果
     */
    boolean checkAdminUser(Long tenantId);

    /**
     * 判断是否已初始化部门
     * @param tenantId 租户id
     * @return 判断结果
     */
    boolean checkInitDept(Long tenantId);

    /**
     * 判断是否已初始化角色
     * @param tenantId 租户id
     * @return 判断结果
     */
    boolean checkInitRoles(Long tenantId);

    /**
     * 获取初始化管理员
     * @param tenantId 租户id
     * @return 管理员信息
     */
    SysUser getInitAdminUser(Long tenantId);

    /**
     * 获取非初始化管理员
     * @param tenantId 租户id
     * @return 管理员信息
     */
    SysUser getAdminUser(Long tenantId);

    List<SysRole> getInitRoles(Long tenantId);

    List<SysRole> initRolesData();

    List<Long> checkAdminMenu(Long roleId);

    List<Long> getMenuIds (Long tenantId);

    boolean checkInitSource(Long tenantId);

    List<BizSource> getInsertSource(Long tenantId);

    SysDept getInitDept(Long tenantId);
}
