package com.muchinfo.mtp3pojos.vo.performance;

import com.muchinfo.mtp3pojos.entity.Performancestep;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "PayPerformancePlanResult对象", description = "履约计划信息")
public class PayPerformancePlanResult {

    @ApiModelProperty(value = "履约计划ID")
    private Long performancePlanId;

    @ApiModelProperty(value = "履约类型")
    private Integer performancetype;

    @ApiModelProperty(value = "关联单号")
    private String relatedOrderId;

    @ApiModelProperty(value = "履约金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "买方待付金额")
    private BigDecimal buyAmountReceived;

    @ApiModelProperty(value = "卖方待收金额")
    private BigDecimal sellAmountReceived;

    @ApiModelProperty(value = "付款方式")
    private Integer paymentType;

    @ApiModelProperty(value = "履约状态")
    private Integer performanceStatus;

    @ApiModelProperty(value = "当前步骤")
    private Integer steptypeid;

    @ApiModelProperty(value = "买方账户")
    private String buyAccountName;

    @ApiModelProperty(value = "仓单受让用户")
    private Long wrTransferUserId;
    private String wrtransferusername;
    private String wrtransferaccountname;

    @ApiModelProperty(value = "卖方账户")
    private String sellAccountName;
    private Long sellAccountId;
    private Long buyAccountId;

    @ApiModelProperty(value = "买方今日付款")
    private BigDecimal buyTodayAmount;

    @ApiModelProperty(value = "卖方今日收款")
    private BigDecimal sellTodayAmount;

    @ApiModelProperty(value = "买方冻结")
    private BigDecimal buyerFreezeAmount;

    @ApiModelProperty(value = "买方冻结剩余")
    private BigDecimal buyerFreezeAmountRemain;

    @ApiModelProperty(value = "卖方冻结")
    private BigDecimal sellerFreezeAmount;

    @ApiModelProperty(value = "卖方冻结剩余")
    private BigDecimal sellerFreezeAmountRemain;

    @ApiModelProperty(value = "货款溢短金额")
    private BigDecimal hasOverShort;
    private BigDecimal overShortAmount;

    @ApiModelProperty(value = "溢短数量")
    private Integer overShortQty;

    @ApiModelProperty(value = "运费")
    private Integer expressFeeConfirmed;
    private BigDecimal expressFee;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "发货备注")
    private String shipRemark;

    @ApiModelProperty(value = "买方联络信息")
    private String buyerInfo;

    @ApiModelProperty(value = "卖方联络信息")
    private String sellerInfo;

    private List<Performancestep> performancesteps;

    private Integer executeside;
}
