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

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;
import java.util.List;

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "CommissionSheetResultDetail对象", description = "委托单查询详情响应")
public class CommissionSheetResultDetail {
    @ApiModelProperty(value = "委托单号")
    private String orderid;

    private String accountname;

    private Long accountid;
    @ApiModelProperty(value = "所属机构")
    private String parentusername;
    @ApiModelProperty(value = "所属会员")
    private String memberaccountname;
    @ApiModelProperty(value = "市场")
    private String marketname;
    @ApiModelProperty(value = "商品")
    private String goodsname;

    private String goodscode;

    private Integer trademode;
    @ApiModelProperty(value = "挂牌点选类型")
    private Integer listingselecttype;
    @ApiModelProperty(value = "摘牌类型")
    private Integer delistingtype;
    @ApiModelProperty(value = "委托类型")
    private Integer buildtype;
    @ApiModelProperty(value = "方向")
    private Integer buyorsell;
    @ApiModelProperty(value = "期权类型")
    private Integer optiontype;
    @ApiModelProperty(value = "委托价格，行权价（trademode == 18、26）")
    private BigDecimal orderprice;
    @ApiModelProperty(value = "定货金")
    private BigDecimal premium;

    private Long goodsid;
    @ApiModelProperty(value = "委托数量")
    private Integer orderqty;
    @ApiModelProperty(value = "成交数量")
    private Integer tradeqty;
    @ApiModelProperty(value = "开仓数量")
    private Integer openqty;
    @ApiModelProperty(value = "平仓数量")
    private Integer closeqty;
    @ApiModelProperty(value = "撤单数量")
    private Integer cancelqty;
    @ApiModelProperty(value = "取价方式")
    private Integer pricemode;
    @ApiModelProperty(value = "有效期类型")
    private Integer validtype;
    @ApiModelProperty(value = "有效期限")
    private Date validtime;
    @ApiModelProperty(value = "操作类型")
    private Integer operatetype;
    @ApiModelProperty(value = "委托状态")
    private Integer orderstatus;
    @ApiModelProperty(value = "委托时间")
    private Date ordertime;
    @ApiModelProperty(value = "委托来源")
    private Integer ordersrc;
    @ApiModelProperty(value = "客户端流水号")
    private String clientticket;
    @ApiModelProperty(value = "撤单单号")
    private String cancelorderid;
    @ApiModelProperty(value = "关联预埋单号")
    private String preorderid;
    @ApiModelProperty(value = "关联单号")
    private String relatedid;
    @ApiModelProperty(value = "错误码")
    private Long retcode;
    @ApiModelProperty(value = "参考商品")
    private Long  refgoodsid;
    @ApiModelProperty(value = "掉期天数")
    private Integer swapdays;

    private Integer marginalgorithm;
    @ApiModelProperty(value = "即市保证金设置值")
    private BigDecimal marginvalue;
    @ApiModelProperty(value = "收取方式")
    private Integer openfeealgorithm;
    @ApiModelProperty(value = "开仓交易所手续费设置值")
    private BigDecimal openexchagechargevalue;
    @ApiModelProperty(value = "平仓会员手续费设置值")
    private BigDecimal openmemberchargevalue;

    private Integer closefeealgorithm;
    @ApiModelProperty(value = "平仓交易所手续费设置值")
    private BigDecimal closeexchagechargevalue;
    @ApiModelProperty(value = "平仓会员手续费设置值")
    private BigDecimal closememberchargevalue;
    @ApiModelProperty(value = "冻结保证金")
    private BigDecimal freezemargin;
    @ApiModelProperty(value = "冻结服务费")
    private BigDecimal freezecharge;
    @ApiModelProperty(value = "开仓冻结服务费")
    private BigDecimal openfreezecharge;
    @ApiModelProperty(value = "平仓冻结服务费")
    private BigDecimal  closefreezecharge;
    @ApiModelProperty(value = "解冻保证金")
    private BigDecimal unfreezemargin;
    @ApiModelProperty(value = "解冻服务费")
    private BigDecimal unfreezecharge;
    @ApiModelProperty(value = "开仓解冻服务费")
    private BigDecimal openunfreezecharge;
    @ApiModelProperty(value = "平仓解冻服务费")
    private BigDecimal  closeunfreezecharge;
    @ApiModelProperty(value = "成交单列表")
    private List<TradeResult> tradeResultList;
    @ApiModelProperty(value = "历史成交单列表")
    private List<TradeHisResult> tradeHisResultList;
}
