package com.red.circle.other.inner.endpoint.user.user.api;

import com.red.circle.common.business.enums.SVIPLevelEnum;
import com.red.circle.framework.dto.ResultResponse;
import java.util.Map;
import java.util.Set;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 用户svip服务.
 *
 * @author pengliang on 2023/6/6
 */
public interface UserSvipClientApi {

  String API_PREFIX = "/user-svip/client";

  /**
   * 是否为SVip身份.
   */
  @GetMapping("/checkSVipIdentity")
  ResultResponse<SVIPLevelEnum> checkSVipIdentity(@RequestParam("userId") Long userId);

  /**
   * 是否为SVip身份.
   */
  @PostMapping("/mapCheckSVipIdentity")
  ResultResponse<Map<Long, SVIPLevelEnum>> mapCheckSVipIdentity(@RequestBody Set<Long> userIds);

  /**
   * 累加积分.
   */
  @GetMapping("/incrIntegral")
  ResultResponse<Void> incrIntegral(@RequestParam("userId") Long userId,
      @RequestParam("integral") Long integral);

  /**
   * 校验道具是否包含SVip道具.
   */
  @GetMapping("/existSVipProps")
  ResultResponse<Boolean> existSVipProps(@RequestParam("sysOrigin") String sysOrigin,
      @RequestParam("propsId") Long propsId);

}
