package cn.superdesk.uniorder.dubbo.facade.operationCenter.customer;

import cn.superdesk.uniorder.common.exception.UnifiedOrderRuntimeException;
import cn.superdesk.uniorder.common.rest.response.R;
import cn.superdesk.uniorder.dto.param.operationCenter.base.OperationCenterParam;
import cn.superdesk.uniorder.dto.param.operationCenter.customer.OpCenterCustomerOperatorOrgParam;
import cn.superdesk.uniorder.dto.param.operationCenter.customer.OperationCenterCustomerParam;
import cn.superdesk.uniorder.dto.param.operationCenter.customer.OperationCenterCustomerSaveParam;
import cn.superdesk.uniorder.dto.vo.operationCenter.base.OperationCenterVo;
import cn.superdesk.uniorder.dto.vo.operationCenter.customer.OperationCenterCustomerVo;
import cn.superdesk.uniorder.dto.vo.operationCenter.customer.OperationCenterPaymentCustomerVo;
import cn.superdesk.uniorder.dto.vo.sys.SysSelectVo;

import java.util.List;
import java.util.Map;

/**
 * @Author : zx
 * @Create : 2023/4/11 09:48
 * Description :
 */
public interface DubboOperationCenterCustomerService {
    R<List<OperationCenterCustomerVo>>  getOperationCenterCustomerList(OperationCenterCustomerParam param);

    R<String> saveOperationCenterCustomer(OperationCenterCustomerSaveParam param, Long userId);

    OperationCenterCustomerVo getOperationCenterCustomerById(Long id);

    R<String> deleteOperationCenterCustomerById(Long id);

    R<List<OperationCenterVo>> selectAllCustomerIdAndName();

    R<List<OperationCenterPaymentCustomerVo>> findAll(OperationCenterCustomerParam param);

    R<String> linkOperatorAndOrg(OpCenterCustomerOperatorOrgParam param,Long userId);

    R<OpCenterCustomerOperatorOrgParam> linkOperatorAndOrgByCustomerId(String customerId) throws UnifiedOrderRuntimeException;

    R<List<SysSelectVo>> selectOrgList(OperationCenterParam param);
}
