package org.dromara.payment.channel.service;

import org.dromara.payment.channel.domain.BusChannel;
import org.dromara.payment.channel.domain.vo.BaseCompInfo;
import org.dromara.payment.channel.domain.vo.BusChannelVo;
import org.dromara.payment.channel.domain.bo.BusChannelBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.system.api.domain.vo.RemoteDictDataVo;

import java.util.Collection;
import java.util.List;

/**
 * 代理商Service接口
 *
 * @author LionLi
 * @date 2024-04-10
 */
public interface IBusChannelService {

    /**
     * 查询代理商
     */
    BusChannelVo queryById(Long id);

    /**
     * 查询代理商列表
     */
    TableDataInfo<BusChannelVo> queryPageList(BusChannelBo bo, PageQuery pageQuery);


    /***
     * 代理商产品配置-查询代理商列表
     * @param bo
     * @param pageQuery
     * @return
     */
    TableDataInfo<BusChannelVo> queryPageListProConfig(BusChannelBo bo, PageQuery pageQuery);

    /**
     * 查询代理商列表
     */
    List<BusChannelVo> queryList(BusChannelBo bo);

    /**
     * 新增代理商
     */
    Boolean insertByBo(BusChannelBo bo);

    /**
     * 修改代理商
     */
    Boolean updateByBo(BusChannelBo bo);

    /**
     * 校验并批量删除代理商信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);


    /**
     * 根据登录用户获取代理商详情
     */
    BaseCompInfo getAgentInfo();


    /***
     * 审核代理商
     * @param chId  代理商id
     * @param checkType  审核类型
     * @param reason 原因
     * @return
     */
    boolean checkChannel(Long chId,Long checkType,String reason,String domain);



    List<RemoteDictDataVo>   getDwLevel();

}
