package org.dromara.payment.operator.service;

import org.dromara.common.core.domain.R;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.payment.operator.domain.BusOperatorProduct;
import org.dromara.payment.operator.domain.bo.AllocOperatorProductBo;
import org.dromara.payment.operator.domain.vo.BusOperatorProductVo;
import org.dromara.payment.operator.domain.bo.BusOperatorProductBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

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

/**
 * 运营商产品Service接口
 *
 * @author LionLi
 * @date 2024-03-28
 */
public interface IBusOperatorProductService {

    /**
     * 查询运营商产品
     */
    BusOperatorProductVo queryById(Long id);

    /**
     * 查询运营商产品列表
     */
    TableDataInfo<BusOperatorProductVo> queryPageList(BusOperatorProductBo bo, PageQuery pageQuery);

    /**
     * 查询运营商产品列表
     */
    List<BusOperatorProductVo> queryList(BusOperatorProductBo bo);

    /**
     * 新增运营商产品
     */
    Boolean insertByBo(BusOperatorProductBo bo);

    /**
     * 修改运营商产品
     */
    Boolean updateByBo(BusOperatorProductBo bo);

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


    /**
     * 给运营商分配产品
     * @param bo
     * @return
     */
    public boolean allocOperatorProduct(AllocOperatorProductBo bo);



    TableDataInfo<BusOperatorProductVo> queryPageListNew(BusOperatorProductBo bo, PageQuery pageQuery);
}
