package com.neusoft.smart.pos.member.service;

import com.neusoft.smart.pos.dto.member.request.MemberCapitalChangeQueryRequest;
import com.neusoft.smart.pos.dto.member.request.MemberPointWriteOffRequest;
import com.neusoft.smart.pos.dto.member.request.MemberRechargeRequest;
import com.neusoft.smart.pos.dto.member.request.MemberRefundRequest;
import com.neusoft.smart.pos.dto.member.request.MemberTransactionRequest;
import com.neusoft.smart.pos.dto.member.response.DetailedMemberResponse;
import com.neusoft.smart.pos.dto.member.response.MemberCapitalChangeResponse;
import com.neusoft.smart.pos.member.persistent.domain.MemberCapitalChange;

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

public interface MemberCapitalChangeServiceInterface {
	
	BigDecimal recharge(MemberRechargeRequest memberRechargeRequest);
	
	Integer getChangeByOrderId(String orderId, Integer changeType);
	
	DetailedMemberResponse trade(MemberTransactionRequest memberTransactionRequest);
	
	void refund(MemberRefundRequest memberRefundRequest);
	
	void pointWriteOff(MemberPointWriteOffRequest memberPointWriteOffRequest);
	
	void changeLog(MemberCapitalChange memberCapitalChange);
	
	void changeBalance(Integer cardId, BigDecimal newBalance);
	
	List<MemberCapitalChangeResponse> getList(MemberCapitalChangeQueryRequest memberCapitalChangeQueryRequest);
	
	Integer getCount(MemberCapitalChangeQueryRequest memberCapitalChangeQueryRequest);
}
