package org.qinan.safetyeval.client.api;

import org.qinan.safetyeval.client.co.OrgInfoCO;
import org.qinan.safetyeval.client.dto.PageResponse;
import org.qinan.safetyeval.client.dto.SingleResponse;
import org.qinan.safetyeval.client.dto.OrgInfoAddCmd;
import org.qinan.safetyeval.client.dto.OrgInfoModifyCmd;
import org.qinan.safetyeval.client.dto.OrgInfoPageQuery;
import org.qinan.safetyeval.client.dto.OrgInfoUpdateStateCmd;

/**
 * 机构信息接口定义（Client层）
 *
 * @author safety-eval
 */
public interface OrgInfoApi {

    SingleResponse<OrgInfoCO> add(OrgInfoAddCmd cmd);

    SingleResponse<OrgInfoCO> get(Long id);

    SingleResponse<OrgInfoCO> modify(OrgInfoModifyCmd cmd);

    SingleResponse<Void> delete(Long id);

    SingleResponse<Void> updateState(OrgInfoUpdateStateCmd cmd);

    SingleResponse<Void> resetPassword(Long id);

    PageResponse<OrgInfoCO> page(OrgInfoPageQuery query);

    SingleResponse<OrgInfoCO> getInfo();
}
