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 javax.validation.constraints.NotBlank;

@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
@ApiModel("提现-下单入参")
public class WithdrawOrderDto {

	@NotBlank
	@ApiModelProperty(value = "发起方商户编号（标准商户收付款方案中此参数与商编一致，平台商户收付款方案中此参数为平台商商户编号）", required = true)
	private String parentMerchantNo;

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

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

	@ApiModelProperty(value = "提现卡ID,添加提现账户时易宝生成的提现卡ID，与提现卡卡号至少填写一个")
	private String bankCardId;

	@ApiModelProperty(value = "提现账号,与提现卡ID至少填写一个")
	private String bankAccountNo;

	/**
	 * 到账类型
	 * 可选项如下:
	 * REAL_TIME:实时
	 * TWO_HOUR:2小时到账
	 * NEXT_DAY:次日到账（无特殊情况资金于次日上午7点左右到提现银行账户中）
	 */
	@NotBlank
	@ApiModelProperty(value = "到账类型", required = true)
	private YeepayApiConstant.receiveType receiveType;

	@NotBlank
	@ApiModelProperty(value = "提现金额，单位：元（RMB）", required = true)
	private String orderAmount;

	@ApiModelProperty(value = "商户通知地址,不传则不通知")
	private String notifyUrl;

	@ApiModelProperty("银行附言,展示在收款银行系统中的附言，由数字、字母、汉字组成（最终附言内容以银行实际账单为准）。")
	private String remark;

	/**
	 * 终端类型
	 * 可选项如下:
	 * PC:电脑
	 * PHONE:手机
	 * PAD:平板
	 * NFC:可穿戴设备
	 * DTV:数字电视
	 * MPOS:条码支付受理终端
	 * OTHER:其他
	 */
	@ApiModelProperty("终端类型")
	private YeepayApiConstant.terminalType terminalType;

}
