package com.red.circle.other.inner.endpoint.team.target.api;

import com.red.circle.framework.dto.ResultResponse;
import com.red.circle.other.inner.model.dto.agency.agency.BillDiamondBalanceDTO;
import com.red.circle.tool.core.tuple.PennyAmount;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.math.BigDecimal;

/**
 * 用户账单钻石余额.
 *
 * @author xiaofei on 2024/05/07
 */
public interface UserBillDiamondBalanceClientApi {

  String API_PREFIX = "/user-bill-diamond-balance/client";

  /**
   * 获取用户账单钻石余额.
   */
  @GetMapping("/getEntityByBillBelongAndUserId")
  ResultResponse<BillDiamondBalanceDTO> getEntityByBillBelongAndUserId(@RequestParam("sysOrigin") String sysOrigin,
                                                                       @RequestParam("billBelong") Integer billBelong,
                                                                       @RequestParam("userId") Long userId);

  /**
   * 获取用户账单钻石余额.
   */
  @GetMapping("/decr")
  ResultResponse<BillDiamondBalanceDTO> decr(@RequestParam("userId") Long userId,
                                             @RequestParam("billBelong") Integer billBelong,
                                             @RequestParam("amount") BigDecimal amount);

  /**
   * 获取代理账单钻石余额.
   */
  @GetMapping("/decrAgent")
  ResultResponse<BillDiamondBalanceDTO> decrAgent(@RequestParam("userId") Long userId,
                                                  @RequestParam("billBelong") Integer billBelong,
                                             @RequestParam("amount") BigDecimal amount);

}
