package cn.iocoder.yudao.module.pay.service.dividecompany;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.pay.controller.admin.dividecompany.vo.DivideCompanyPageReqVO;
import cn.iocoder.yudao.module.pay.controller.admin.dividecompany.vo.DivideCompanySaveReqVO;
import cn.iocoder.yudao.module.pay.dal.dataobject.dividecompany.DivideCompanyDO;

import javax.validation.Valid;
import java.util.List;

/**
 * 分账公司 Service 接口
 *
 * @author 管理员
 */
public interface DivideCompanyService {

    /**
     * 创建分账公司
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createDivideCompany(@Valid DivideCompanySaveReqVO createReqVO);

    /**
     * 更新分账公司
     *
     * @param updateReqVO 更新信息
     */
    void updateDivideCompany(@Valid DivideCompanySaveReqVO updateReqVO);

    /**
     * 删除分账公司
     *
     * @param id 编号
     */
    void deleteDivideCompany(Long id);

    /**
     * 获得分账公司
     *
     * @param id 编号
     * @return 分账公司
     */
    DivideCompanyDO getDivideCompany(Long id);

    /**
     * 获得分账公司分页
     *
     * @param pageReqVO 分页查询
     * @return 分账公司分页
     */
    PageResult<DivideCompanyDO> getDivideCompanyPage(DivideCompanyPageReqVO pageReqVO);

    List<DivideCompanyDO> getList();

    /**
     * 计算回退金额
     */
    int computeAmount(String account,int totalPrice);
}