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

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

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

	@NotBlank
	@ApiModelProperty(value = "商户结算请求号。需保证在商户端不重复", required = true)
	private String settleRequestNo;

	/**
	 * PERIOD:按照指定的时间区间结算
	 * ALL:结算当前全部未结算可结算交易
	 */
	@NotBlank
	@ApiModelProperty(value = "结算时间范围", required = true)
	private YeepayApiConstant.operatePeriod operatePeriod;

	@ApiModelProperty(value = "结算范围截止时间。如果按PERIOD指定时间区间结算，需要填写此参数。")
	private String endTime;

	@ApiModelProperty(value = "通知地址，用于通知商户结算结果")
	private String notifyUrl;
}
