package com.skr.mdm.api.admin.service;

import com.skr.mdm.bean.qo.admin.AdminInfoQO;
import com.skr.mdm.bean.qo.admin.AdminQO;
import com.skr.mdm.dto.LoginAdminDTO;
import com.skr.mdm.result.ResponseResult;

/**
 * @author nfq
 * @date 2020/9/9 15:36
 */
public interface AdminService {

    /**
     * 管理员信息查询
     * @param id
     * @return
     */
    ResponseResult adminInfo(Integer id);

    /**
     * 管理员信息修改
     * @param adminInfoQO
     * @param loginAdminDTO
     * @return
     */
    ResponseResult updateAdminInfo(AdminInfoQO adminInfoQO, LoginAdminDTO loginAdminDTO);

    /**
     * 角色列表
     * @param companyId
     * @param roleId
     * @return
     */
    ResponseResult allRoles(Integer companyId, Integer roleId);

    /**
     * 管理员添加
     * @param adminQO
     * @param loginAdminDTO
     * @return
     */
    ResponseResult addAdmin(AdminQO adminQO, LoginAdminDTO loginAdminDTO);

    /**
     * 管理员列表
     * @param pageNum
     * @param pageSize
     * @param companyId
     * @param searchType
     * @param searchValue
     * @return
     */
    ResponseResult listAdmin(Integer pageNum, Integer pageSize, Integer companyId, Integer searchType, String searchValue, Integer adminId);

    /**
     * 管理员编辑
     * @param adminQO
     * @param loginAdminDTO
     * @return
     */
    ResponseResult updateAdmin(AdminQO adminQO, LoginAdminDTO loginAdminDTO);

    /**
     * 管理员删除
     * @param id
     * @param loginAdminDTO
     * @return
     */
    ResponseResult deleteAdmin(Integer id, LoginAdminDTO loginAdminDTO);

    /**
     * 冻结解锁
     * @param id
     * @param usable
     * @return
     */
    ResponseResult lockOrUnlock(Integer id, Integer usable,  LoginAdminDTO loginAdminDTO);

    ResponseResult addCheck(String email, String adminName);

}