package org.springblade.yeePay.entity.saas.account;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springblade.yeePay.common.YeepayApiConstant;
import org.springblade.yeePay.entity.MerchantInfo;

import javax.validation.constraints.NotBlank;

@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
@ApiModel("转账-下单入参")
public class TransferOrderDto extends MerchantInfo {

	@NotBlank
	@ApiModelProperty(value = "商户请求号，商户请求号，由商户自定义生成",required = true)
	private String requestNo;

	@NotBlank
	@ApiModelProperty(value = "转出方商户编，易宝支付分配的的商户唯一标识",required = true)
	private String fromMerchantNo;

	@NotBlank
	@ApiModelProperty(value = "转入方商户编号，易宝支付分配的的商户唯一标识",required = true)
	private String toMerchantNo;

	@NotBlank
	@ApiModelProperty(value = "转账金额，单位：元（RMB），精确到分",required = true)
	private String orderAmount;

	@NotBlank
	@ApiModelProperty(value = "用途",required = true)
	private String usage;

	/**
	 * 可选项如下:
	 * OUTSIDE:转出方承担,
	 * INSIDE:转入方承担(若不传默认转出方承担)
	 */
	@ApiModelProperty(value = "手续费承担方：当商户承担且计费方式为预付实扣或后收时，不支持转入方承担；当平台商或服务商承担时无需指定此手续费承担方")
	private YeepayApiConstant.feeChargeSide feeChargeSide;

	@ApiModelProperty(value = "转账接收方通知地址")
	private String notifyUrl;
}
