package com.yn.bftl.thirdparty.modules.business.dto;

import com.yn.bftl.common.modules.account.enums.PaymentType;
import com.yn.bftl.common.modules.company.entity.ErpAccountSet;
import com.yn.bftl.common.modules.order.enums.PaymentMethod;
import com.yn.bftl.common.modules.order.enums.PosPaymentType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.math.BigDecimal;

/**
 * 创建支付单DTO
 *
 * @author chendehuihuo
 * @date 202111/15
 **/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "CreatePaymentDTO", description="创建支付单DTO")
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CreatePaymentDTO {

    @ApiModelProperty(value = "支付方式")
    private PaymentMethod paymentMethod;

    @ApiModelProperty(value = "付款方ID")
    private String payerId;

    @ApiModelProperty(value = "付款方名称")
    private String payerName;

    @ApiModelProperty(value = "付款方信息")
    private String payerMsg;

    @ApiModelProperty(value = "付款方通联标识")
    private String bizUserId;

    @ApiModelProperty(value = "收款方ID")
    private String payeeId;

    @ApiModelProperty(value = "收款方名称")
    private String payeeName;

    @ApiModelProperty(value = "收款方通联标识")
    private String payeeBizUserId;

    @ApiModelProperty(value = "收款方IP")
    private String payeeIp;

    @ApiModelProperty(value = "收款方信息")
    private String payeeMsg;

    @ApiModelProperty(value = "交易总金额")
    @Builder.Default
    private BigDecimal amount = BigDecimal.ZERO;

    @ApiModelProperty(value = "第三方支付单号")
    private String externalId;

    @ApiModelProperty(value = "支付单类型")
    private PaymentType paymentType;

    @ApiModelProperty(value = "订单ID")
    private String orderId;

    @ApiModelProperty(value = "充值订单ID")
    private Long topUpOrderId;

    @ApiModelProperty(value = "erp账套")
    private ErpAccountSet erpAccountSet;

    @ApiModelProperty(value = "POS支付的支付方式")
    private PosPaymentType posPaymentType;

    @ApiModelProperty(value = "银联聚合支付订单号")
    private String unionpaySn;

    @ApiModelProperty(value = "pos机硬件序列号")
    private String hardwareSn;
}
