package cn.superdesk.uniorder.dubbo.facade.unified;

import cn.superdesk.uniorder.common.rest.response.R;
import cn.superdesk.uniorder.dao.entity.organisation.SysEnterprise;
import cn.superdesk.uniorder.dao.entity.unified.UnifiedCustomer;
import cn.superdesk.uniorder.dao.entity.invoice.common.InvoiceType;
import cn.superdesk.uniorder.dao.entity.invoice.common.InvoiceTaxRate;
import cn.superdesk.uniorder.common.security.dto.LoginSysUser;
import cn.superdesk.uniorder.dto.vo.unified.UnifiedCustomerAdd;
import cn.superdesk.uniorder.dto.vo.unified.UnifiedCustomerDetail;
import cn.superdesk.uniorder.dto.vo.unified.UnifiedCustomerVo;

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

public interface DubboUnifiedCustomerService {

	UnifiedCustomer addObjTran(SysEnterprise virt, UnifiedCustomerAdd model, LoginSysUser loginSysUser);

	UnifiedCustomer updateObjTran(UnifiedCustomerAdd model, LoginSysUser loginSysUser);

	UnifiedCustomerDetail getDetail(Long virtId);

	R<List<UnifiedCustomerVo>> getDataByPage(Map<String, Object> params, int pageNum, int pageSize);

	List<InvoiceTaxRate> getInvoiceTaxDataList(Map<String, Object> params);

	List<InvoiceType> getInvoiceTypeList(Map<String, Object> params);

	UnifiedCustomer findById(Long virtId);

}
