package com.zcloud.basic.info.api;

import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.security.starter.api.co.DecryptCmd;
import com.zcloud.basic.info.dto.*;
import com.zcloud.basic.info.dto.clientobject.*;

import java.util.Collection;
import java.util.List;

/**
 * web-client
 *
 * @Author zhaokai
 * @Date 2025-10-30 09:54:10
 */
public interface CorpInfoServiceI {
    PageResponse<CorpInfoCO> listPage(CorpInfoPageQry qry);
    PageResponse<CorpInfoCO> listPageBasic(CorpInfoPageQry qry);
    PageResponse<CorpInfoCO> listPageNoPms(CorpInfoPageQry qry);

    MultiResponse<CorpInfoCO> listAll(CorpInfoQry corpInfoQry);
    SingleResponse<CorpInfoCO> add(CorpInfoAddCmd cmd);

    Boolean checkCorpCode(CorpInfoCheckCodeQry qry);

    Boolean checkCorpName(CorpInfoCheckNameQry qry);

    void edit(CorpInfoUpdateCmd cmd);

    void remove(Long id);

    void removeBatch(Long[] ids);

    CorpInfoCO info(Long id);

    PageResponse<CorpDepartmentCO> corpDepartlist(CorpDepartmentQry qry);

    void changePassword(Long id);

    void changeCompanyName(CorpInfoUpdateCmd corpInfoUpdateCmd);

    void changeEnableFlag(CorpInfoUpdateUseFlagCmd corpInfoUpdateUseFlagCmd);

    PageResponse<CorpUserMiddleCO> corpUserMiddlePage(CorpUserMiddleQry qry);

    List<CorpInfoCO> getCorpList();

    List<CorpInfoCO> listByCorpIds(Collection<Long> collection);

    Boolean verifyCorpInfo();

    DecryptCmd getEncryInfo(UserCheckPassWordCmd userCheckPassWordCmd);

    void deleteCorpAndDown(List<Long>  ids);
}

