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.BuyOrSellConverter;
import com.muchinfo.mtp3pojos.exportconverter.ListTypeConverter;
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 = "CommissionCoinResult对象", description = "委托单导出")
public class CommissionCoinResult {

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

    @ExcelProperty(value = "挂摘类型", converter = ListTypeConverter.class)
    @ColumnWidth(20)
    @ApiModelProperty(value = "挂摘类型 tradeMode == 36")
    private Integer listType;

    @ExcelProperty(value = "委托类型", converter = BuyOrSellConverter.class)
    @ColumnWidth(20)
    @ApiModelProperty(value = "委托类型")
    private Integer buyOrSell;

    @ExcelProperty("委托账号")
    @ColumnWidth(20)
    @ApiModelProperty(value = "委托账号 tradeMode == 36")
    private Long tradeAccountId;

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

    @ExcelProperty("价格")
    @ColumnWidth(20)
    @ApiModelProperty(value = "价格、行权价（tradeMode = 18、26）")
    private BigDecimal orderPrice;

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

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

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

    @ExcelProperty(value = "委托状态", converter = OrderStatusConverter.class)
    @ColumnWidth(20)
    @ApiModelProperty(value = "委托状态 code：orderstatus")
    private Integer orderStatus;
}
