package co.yixiang.yshop.module.distributor.service.distributorwages;

import co.yixiang.yshop.framework.common.pojo.PageResult;
import co.yixiang.yshop.module.distributor.controller.admin.distributorwithdrawalmethod.vo.DistributorWithdrawalMethodRespVO;
import co.yixiang.yshop.module.distributor.controller.admin.distributorwithdrawalmethod.vo.DistributorWithdrawalMethodUpdateReqVO;
import co.yixiang.yshop.module.distributor.controller.app.distributorwages.vo.AppDistributorWagesPageReqVO;
import co.yixiang.yshop.module.distributor.controller.app.distributorwages.vo.AppDistributorWagesPageRespVO;
import co.yixiang.yshop.module.distributor.controller.app.distributorwages.vo.AppDistributorWagesWithdrawReqVO;
import co.yixiang.yshop.module.distributor.dal.dataobject.distributororder.DistributorOrderDO;
import co.yixiang.yshop.module.distributor.dal.dataobject.distributorwageslog.DistributorWagesLogDO;

import java.time.LocalDateTime;
import java.util.List;

public interface DistributorWagesFacade {

    AppDistributorWagesPageRespVO getWages(LocalDateTime[] createTime);

    PageResult<DistributorWagesLogDO> getWagesPage(AppDistributorWagesPageReqVO reqVO);

    void withdraw(AppDistributorWagesWithdrawReqVO reqVO);

    void updateWithdrawalMethod(DistributorWithdrawalMethodUpdateReqVO updateReqVO);

    List<DistributorWithdrawalMethodRespVO> getWithdrawalMethodList();

    // 保存佣金
    void saveWages(DistributorOrderDO distributorOrder);

    // 结算佣金
    void settlementWages(DistributorOrderDO distributorOrder);

    // 取消订单退回佣金
    void cancelWages(List<Long> distributorOrderIds);
}
