package com.bonus.core.account.v3.service;


import com.bonus.core.account.v3.model.AccTradeWalletDetail;
import com.bonus.core.account.v3.mq.send.model.RepAccMqDetailModel;
import com.bonus.core.account.v3.po.AccTradeWalletPO;
import com.bonus.core.account.v3.web.vo.AccOrdTradeVO;

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

public interface AccTradeWalletDetailService {

   List<AccTradeWalletDetail> listCustMonthAccSubsidyExpirationTrade(Long custId);

   int insertAccTradeWalletDetail(AccTradeWalletPO accTradeWalletPo);

   List<RepAccMqDetailModel> listAccTradeWalletDetailForSend(List<Long> tradeIdList);

   List<Long> selectCustIdForSubsidyExpireTime(LocalDateTime now);

   void updateExpiredClearTradeUseAmount(Long id, BigDecimal useAmount);

   AccTradeWalletDetail selectOneSubsidyExpirationTrade(Long custId);

   List<AccTradeWalletDetail> queryAccTradeWalletDetailByLeOrdNo(Long orderId, List<Integer> tradeTypeList);

   List<AccTradeWalletDetail> queryAccTradeWalletDetailByOriginTradeId(Long originTradeId, Integer tradeType);

   AccOrdTradeVO queryAccTradeOrderDetailByLeOrderNo(Long leOrderNo);
}
