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

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

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "CommissionSwapsResult对象", description = "委托单导出 -- 掉期")
public class CommissionSwapsResult {

    @ExcelProperty("委托单号")
    @ColumnWidth(20)
    @ApiModelProperty(value = "委托单号")
    private String orderId;

    @ExcelProperty("账户")
    @ColumnWidth(35)
    @ApiModelProperty(value = "账户")
    private String accountNameId;

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

    @ExcelProperty(value = "单据类型", converter = BuildTypeConverter.class)
    @ColumnWidth(20)
    @ApiModelProperty(value = "单据类型")
    private Integer buildType;

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

    @ExcelProperty("委托价格")
    @ColumnWidth(20)
    @ApiModelProperty(value = "委托价格")
    private BigDecimal orderPrice;

    @ExcelProperty("点差")
    @ColumnWidth(20)
    @ApiModelProperty(value = "点差")
    private BigDecimal marketMaxSub;

    @ExcelProperty("委托数量")
    @ColumnWidth(20)
    @ApiModelProperty(value = "委托数量")
    private Integer orderQty;

    @ExcelProperty("成交数量")
    @ColumnWidth(20)
    @ApiModelProperty(value = "成交数量")
    private BigDecimal tradeQty;

    @ExcelProperty(value = "状态", converter = OrderStatusConverter.class)
    @ColumnWidth(20)
    @ApiModelProperty(value = "状态")
    private Integer orderStatus;

    @ExcelProperty("委托时间")
    @ColumnWidth(20)
    @ApiModelProperty(value = "委托时间")
    private Date orderTime;

    @ExcelProperty("交易日")
    @ColumnWidth(20)
    @ApiModelProperty(value = "交易日")
    private String tradeDate;
}
