package com.muchinfo.mtp3pojos.vo;

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
public class GoodsQuoterDto {

    private Long goodsid;

    private String goodscode;
    private Long quoterid;
    private Long marketid;
    @ApiModelProperty(value = "市场交易模式")
    private Integer trademode;
    @ApiModelProperty(value = "市场交易属性")
    private Integer tradeproperty;
    @ApiModelProperty(value = "所属机构ID")
    private Long areauserid;
    @ApiModelProperty(value = "所属市场名称")
    private String marketname;

    @ApiModelProperty(value = "所属商品名称")
    private String goodsname;
    @ApiModelProperty(value = "报价商名称")
    private String quotername;
    @ApiModelProperty(value = "是否可手动报行权价- 0:否 1:是 [期权]")
    private Integer canmanualquotestrike;

    @ApiModelProperty(value = "报价货币ID")
    private Long currencyid;
    @ApiModelProperty(value = "报价单位ID")
    private Long goodunitid;
    @ApiModelProperty(value = "合约单位")
    private BigDecimal agreeunit;
    @ApiModelProperty(value = "报价小数位")
    private Integer decimalplace;

    @ApiModelProperty(value = "期权类型")
    private Integer optiontype;
    @ApiModelProperty(value = "看涨向上档位")
    private Integer cuppricegear;
    @ApiModelProperty(value = "看涨向下档位")
    private Integer cdownpricegear;
    @ApiModelProperty(value = "看跌向上档位")
    private Integer puppricegear;
    @ApiModelProperty(value = "看跌向下档位")
    private Integer pdownpricegear;
    @ApiModelProperty(value = "交易日")
    private String tradedate;

    @ApiModelProperty(value = "买价")
    private BigDecimal bid;
    @ApiModelProperty(value = "买量")
    private Long buyqty;
    @ApiModelProperty(value = "当前买量")
    private Long buycurqty;
    @ApiModelProperty(value = "卖价")
    private BigDecimal ask;
    @ApiModelProperty(value = "卖量")
    private Long sellqty;
    @ApiModelProperty(value = "当前卖量")
    private Long sellcurqty;
    @ApiModelProperty(value = "行情有效时间(秒)--设置的时间")
    private Long expire;

    @ApiModelProperty(value = "报价随机量下限")
    private Long quoteminvalue;
    @ApiModelProperty(value = "报价随机量上限")
    private Long quotemaxvalue;
    @ApiModelProperty(value = "行情有效时间(秒)--默认的时间")
    private Long quoteeffectivesecond;

    @ApiModelProperty(value = "市场运行状态")
    private Integer runstatus;
    @ApiModelProperty(value = "申请状态")
    private Integer applystatus;
    @ApiModelProperty(value = "是否需要审核")
    private Integer isneedaudit;
    @ApiModelProperty(value = "审核标志")
    private Integer auditflag;
    private String msg;
    @ApiModelProperty(value = "最高买入价")
    private BigDecimal topBid;
    @ApiModelProperty(value = "最低卖出价")
    private BigDecimal bottomAsk;
    @ApiModelProperty(value = "买点差")
    private Long bidMove;
    @ApiModelProperty(value = "卖点差")
    private Long askMove;

    @ApiModelProperty(value = "订货金（多个）")
    private String premiums;
    @ApiModelProperty(value = "行权价（多个）")
    private String strikeprices;

    @ApiModelProperty(value = "市场价")
    private BigDecimal last;

    @ApiModelProperty(value = "行情源类型")
    private Integer quotetype;
    private Integer buyqtySelect;
    private Integer sellqtySelect;
    private Integer askSelect;
    private Integer bidSelect;

    @ApiModelProperty(value = "买卖方向")
    private Integer buyorsell;
    @ApiModelProperty(value = "价格")
    private BigDecimal price;
    @ApiModelProperty(value = "数量")
    private Long qty;
    @ApiModelProperty(value = "当前量")
    private Long curqty;
    @ApiModelProperty(value = "最高买入价/最低卖出价")
    private BigDecimal limitprice;
    @ApiModelProperty(value = "买点差/卖点差")
    private Long move;
    @ApiModelProperty(value = "报价类型 - 1:不报价 2:手工报价")
    private Integer buypricetype;
    @ApiModelProperty(value = "报量类型 - 1:随机量 2:手工报量 3:延用量")
    private Integer buyqtytype;
    @ApiModelProperty(value = "报价类型 - 1:不报价 2:手工报价")
    private Integer sellpricetype;
    @ApiModelProperty(value = "报量类型 - 1:随机量 2:手工报量 3:延用量")
    private Integer sellqtytype;
    @ApiModelProperty(value = "报价类型 - 1:不报价 2:手工报价")
    private Integer pricetype;
    @ApiModelProperty(value = "报量类型 - 1:随机量 2:手工报量 3:延用量")
    private Integer qtytype;

    @ApiModelProperty(value = "买方撤销状态")
    private Integer buyisvalid;
    @ApiModelProperty(value = "卖方撤销状态")
    private Integer sellisvalid;

    @ApiModelProperty(value = "开盘价")
    private BigDecimal open;
    @ApiModelProperty(value = "权利金方式 1-手动报权利金 2-自动报权利金")
    private Integer premiumtype;
    @ApiModelProperty(value = "自动报权利金 报价比例， 权利金=开盘价*合约单位*报价比例")
    private BigDecimal premiumratio;

    @ApiModelProperty(value = "可报价的交易模式")
    private String[] trademodes;
}
