package com.muchinfo.mtp3pojos.vo.query.order;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.muchinfo.mtp3pojos.exportconverter.BuyOrSellConverter;
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;

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "OrderQueryResult对象", description = "订单查询响应")
public class OrderQueryResult {

    @ExcelProperty("订单号")
    @ColumnWidth(20)
    @ApiModelProperty(value = "订单号")
    private String tradeid;

    @ExcelProperty("客户")
    @ColumnWidth(20)
    @ApiModelProperty(value = "客户")
    private String accountname;

    @ExcelProperty("所属机构")
    @ColumnWidth(20)
    @ApiModelProperty(value = "所属机构")
    private String membername;

    @ExcelProperty("商品/代码")
    @ColumnWidth(20)
    @ApiModelProperty(value = "商品/代码")
    private String goodsname;

    @ExcelProperty(value = "方向", converter = BuyOrSellConverter.class)
    @ColumnWidth(20)
    @ApiModelProperty(value = "方向")
    private Integer buyorsell;

    @ExcelProperty("订单价格")
    @ColumnWidth(20)
    @ApiModelProperty(value = "订单价格")
    private BigDecimal holderprice;

    @ExcelProperty("原始数量")
    @ColumnWidth(20)
    @ApiModelProperty(value = "原始数量")
    private String opennum;

    @ExcelProperty("订单数量")
    @ColumnWidth(20)
    @ApiModelProperty(value = "订单数量")
    private String holdernum;

    @ExcelProperty("冻结数量")
    @ColumnWidth(20)
    @ApiModelProperty(value = "冻结数量")
    private String freezenum;

    @ExcelProperty("风险率")
    @ColumnWidth(20)
    @ApiModelProperty(value = "风险率")
    private BigDecimal depositratedisplay;

    @ExcelProperty("订单金额")
    @ColumnWidth(20)
    @ApiModelProperty(value = "订单金额")
    private BigDecimal holderamount;

    @ExcelProperty("占用资金")
    @ColumnWidth(20)
    @ApiModelProperty(value = "占用资金/已付金额")
    private BigDecimal payeddeposit;

    @ExcelProperty("订单时间")
    @ColumnWidth(20)
    @ApiModelProperty(value = "订单时间")
    private String tradetimestr;

    private String goodscode;

    private Integer decimalplace;

    private BigDecimal agreeunit;

    private Integer holderqty;

    @ApiModelProperty(value = "现价")
    private String closeprice;

    @ApiModelProperty(value = "浮动结余")
    private String floatpl;

    private String goodsunitid;

    private Integer trademode;

    @ApiModelProperty(value = "持仓天数")
    private Integer holddays;

    @ApiModelProperty(value = "已计滞纳金")
    private BigDecimal callatefee;

    @ApiModelProperty(value = "已付滞纳金")
    private BigDecimal payedlatefee;

    @ApiModelProperty(value = "提示定金率")
    private BigDecimal promptdepositrate;

    @ApiModelProperty(value = "追加定金率")
    private BigDecimal adddepositrate;

    @ApiModelProperty(value = "斩仓定金率")
    private BigDecimal cutdepositrate;

    @ApiModelProperty(value = "提示价格(预)")
    private BigDecimal promptprice;

    @ApiModelProperty(value = "斩仓价格(预)")
    private BigDecimal cutprice;

    @ApiModelProperty(value = "允许自动补定金")
    private Integer canautoadddeposit;

    @ApiModelProperty(value = "允许自动退定金")
    private Integer canautorefunddeposit;

    private Integer deliveryqty;

    private Integer openqty;

    @ApiModelProperty(value = "转让结余")
    private BigDecimal closepl;

    @ApiModelProperty(value = "交收数量")
    private String deliverynum;

    @ApiModelProperty(value = "上级机构")
    private String parentname;

    @ApiModelProperty(value = "原始金额")
    private BigDecimal tradeamount;

    @ApiModelProperty(value = "原始已付定金")
    private BigDecimal oripayeddeposit;

    @ApiModelProperty(value = "原始补充定金")
    private BigDecimal orirestockdeposit;

    @ApiModelProperty(value = "补充定金")
    private BigDecimal restockdeposit;
}
