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

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 SettleCardAddDto {

	/**
	 * *标准商户收付款方案中此参数与收款商户编号一致；
	 * *平台商户收付款方案中此参数为平台商商户编号；
	 * *服务商解决方案中，①标准商户收款时，该参数为标准商户商编 ②平台商收款或平台商入驻商户收款时，该参数为平台商商编。
	 */
	@NotBlank
	@ApiModelProperty(value = "发起方商户编号", required = true)
	private String parentMerchantNo;

	@NotBlank
	@ApiModelProperty(value = "收款商户编号", required = true)
	private String merchantNo;

	@NotBlank
	@ApiModelProperty(value = "银行卡号", required = true)
	private String bankCardNo;

	/**
	 * 结算账户类型。
	 * PUBLIC_CARD:对公卡
	 * DEBIT_CARD:借记卡
	 */
	@NotBlank
	@ApiModelProperty(value = "结算账户类型", required = true)
	private YeepayApiConstant.bankAccountType bankCardType;

	@NotBlank
	@ApiModelProperty(value = "银行编码地址", required = true)
	private String bankCode;

	/**
	 * 设置为默认结算卡后，结算资金会结算至该银行账户。
	 * true：设置为默认结算卡
	 * false：不设置为默认结算卡
	 */
	@ApiModelProperty(value = "是否设置为默认结算卡")
	private Boolean defaultSettleCard;
}
