package org.hzhub.crm.service;

import org.hzhub.common.mybatis.core.page.PageQuery;
import org.hzhub.common.mybatis.core.page.TableDataInfo;
import org.hzhub.crm.domain.bo.CrmDealerBo;
import org.hzhub.crm.domain.vo.CrmDealerVo;

/**
 * CRM经销商 Service 接口
 *
 * @author hzhub
 */
public interface ICrmDealerService {

    /**
     * 分页查询经销商列表
     *
     * @param dealer    经销商查询条件
     * @param pageQuery 分页参数
     * @return 经销商列表
     */
    TableDataInfo<CrmDealerVo> selectPageDealerList(CrmDealerBo dealer, PageQuery pageQuery);

    /**
     * 查询经销商详情
     *
     * @param dealerId 经销商ID
     * @return 经销商详情
     */
    CrmDealerVo selectDealerById(Long dealerId);

    /**
     * 新增经销商
     *
     * @param dealer 经销商信息
     * @return 结果
     */
    int insertDealer(CrmDealerBo dealer);

    /**
     * 修改经销商
     *
     * @param dealer 经销商信息
     * @return 结果
     */
    int updateDealer(CrmDealerBo dealer);

    /**
     * 批量删除经销商
     *
     * @param dealerIds 经销商ID数组
     * @return 结果
     */
    int deleteDealerByIds(Long[] dealerIds);

    /**
     * 校验经销商编码是否唯一
     *
     * @param dealer 经销商信息
     * @return 结果
     */
    boolean checkDealerCodeUnique(CrmDealerBo dealer);
}