package com.crm.manager.service;

import com.crm.rely.backend.core.dto.base.ResultWithPagerDto;
import com.crm.rely.backend.core.dto.cooperative.partner.agent.CooperativePartnerAgentDto;
import com.crm.rely.backend.core.dto.cooperative.partner.subset.CooperativePartnerSubsetDto;
import com.crm.rely.backend.core.dto.cooperative.partner.us.CooperativePartnerUsDto;
import com.crm.rely.backend.core.entity.base.SingleLongEntity;
import com.crm.rely.backend.core.entity.cooperative.partner.agent.*;
import com.crm.rely.backend.core.entity.cooperative.partner.subset.*;
import com.crm.rely.backend.core.entity.cooperative.partner.us.*;
import com.crm.rely.backend.exception.ServiceException;

public interface CooperativePartnerService {

    void addAgent(CooperativePartnerAgentAddEntity entity) throws ServiceException;

    void updateAgent(CooperativePartnerAgentUpdateEntity entity) throws ServiceException;

    void deleteAgent(CooperativePartnerAgentDeleteEntity entity) throws ServiceException;

    void approveAgent(CooperativePartnerAgentApproveEntity entity) throws ServiceException;

    ResultWithPagerDto<CooperativePartnerAgentDto> searchAgentPageList(CooperativePartnerAgentSearchEntity entity) throws ServiceException, IllegalAccessException, InstantiationException;

    CooperativePartnerAgentDto searchAgentSingle(SingleLongEntity entity) throws ServiceException, InstantiationException, IllegalAccessException;

    void addSubset(CooperativePartnerSubsetAddEntity entity) throws ServiceException;

    void updateSubset(CooperativePartnerSubsetUpdateEntity entity) throws ServiceException;

    void deleteSubset(CooperativePartnerSubsetDeleteEntity entity) throws ServiceException;

    void approveSubset(CooperativePartnerSubsetApproveEntity entity) throws ServiceException;

    ResultWithPagerDto<CooperativePartnerSubsetDto> searchSubsetPageList(CooperativePartnerSubsetSearchEntity entity) throws ServiceException, IllegalAccessException, InstantiationException;

    CooperativePartnerSubsetDto searchSubsetSingle(SingleLongEntity entity) throws ServiceException, InstantiationException, IllegalAccessException;

    void addUs(CooperativePartnerUsAddEntity entity) throws ServiceException;

    void updateUs(CooperativePartnerUsUpdateEntity entity) throws ServiceException;

    void deleteUs(CooperativePartnerUsDeleteEntity entity) throws ServiceException;

    void approveUs(CooperativePartnerUsApproveEntity entity) throws ServiceException;

    ResultWithPagerDto<CooperativePartnerUsDto> searchUsPageList(CooperativePartnerUsSearchEntity entity) throws ServiceException, IllegalAccessException, InstantiationException;

    CooperativePartnerUsDto searchUsSingle(SingleLongEntity entity) throws ServiceException, InstantiationException, IllegalAccessException;
}
