package org.qinan.safetyeval.client.api;

import org.qinan.safetyeval.client.co.AccountCO;
import org.qinan.safetyeval.client.dto.AccountAddCmd;
import org.qinan.safetyeval.client.dto.AccountModifyCmd;
import org.qinan.safetyeval.client.dto.AccountPageQuery;
import org.qinan.safetyeval.client.dto.PageResponse;
import org.qinan.safetyeval.client.dto.SingleResponse;

/**
 * 用户接口定义（Client层）
 *
 * @author safety-eval
 */
public interface AccountApi {

    SingleResponse<AccountCO> add(AccountAddCmd cmd);

    SingleResponse<AccountCO> get(Long id);

    SingleResponse<AccountCO> modify(AccountModifyCmd cmd);

    SingleResponse<Void> delete(Long id);

    PageResponse<AccountCO> page(AccountPageQuery query);

    SingleResponse<AccountCO> syncUserToGBS(String account);
}
