package com.copy.trade.entity.dto;


import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;


@Data
public class ContractOrderEntrust implements Serializable {
	private static final Long serialVersionUID = 102L;

    private Long id;

    //合约ID
    private Long contractId;

    //用户ID
    private Long memberId;
    
    private Long positionId;

    //合约委托订单ID（自动生成）
    private String contractOrderEntrustId;

   //仓位模式(0全仓 1逐仓)
    private String patterns;

    //委托订单类型(0 开仓 1 平仓 ｜ 与 direction 配合（）)
    private String entrustType;

    //方向(0买 1卖)
    private String direction; // 0买 1卖

    //委托类型(0市价 1限价 2计划委托)
    private String type;

    //交易对符号
    private String symbol;

    //币单位
    private String coinSymbol;

    //结算单位
    private String baseSymbol;

    // 触发价(委托方式是计划/限价必填)
    private BigDecimal triggerPrice;

    // 委托价(委托方式是计划/限价必填)
    private BigDecimal entrustPrice;

    // 触发价(委托方式是计划/限价必填)
    private BigDecimal lossPrice;

    // 委托价(委托方式是计划/限价必填)
    private BigDecimal lossEntrustPrice;

    // 触发价(委托方式是计划/限价必填)
    private BigDecimal profitPrice;

    // 委托价(委托方式是计划/限价必填)
    private BigDecimal profitEntrustPrice;

    //成交均价
    private BigDecimal tradedPrice;

    // 本金单位（如：USDT）
    private String principalUnit;

    //本金数量(冻结保证金)
    private BigDecimal principalAmount;

    //下单时价
    private BigDecimal currentPrice;

    //开仓手续费
    private BigDecimal openFee;

    //平仓手续费
    private BigDecimal closeFee;

    //合约面值
    private BigDecimal shareNumber;

    // 委托数量（张）
    private BigDecimal volume;

    // 成交数量（张）
    private BigDecimal tradedVolume;

    // 盈亏金额
    private BigDecimal profitAndLoss;

    //委托状态( 0:委托中/1:已撤销/2:委托失败/3:委托成功)
    private String status;

    //创建时间
    private Long createTime;

    //触发时间
    private Long triggeringTime;

    //是否是计划委托的委托单(0：否，1：是)
    private int isFromSpot;

    // 是否是爆仓单，0：否，1：是
    private int isBlast;

    // 是否已返佣，0：否，1：是
    private int isReward;

    // 是否是止盈止损单，0：否，1：是
    private int isCut;

    //是否是市价全平单，0：否，1：是
    private int isMarketAllClose;

    // 是否是限价成交单，0：否，1：是
    private int isLimitPrice;

    //开仓时间
    private Long usdtOpenTime;

    // 开仓均价(USDT本位)
    private BigDecimal usdtOpenPrice;

    // 是否是反向开仓单，0：否，1：是
    private int isReversedOpen;

    // 杠杆
    private Integer leverage;

    //成交时间
    private Long dealTime;
    
    //仓位类型(0和仓 1分仓)
    private String positionType;

    //0USDT 1币本位
    private String moneyType;

   //开仓类型(0市价委托 1限价委托 2计划委托)
    private Integer openType;

    //平仓类型(0平仓 1市价全平 2一键平仓 3反向开仓 4止盈止损 5爆仓 6管理员平仓)
	private String closeType;

	//委托数量精度
	private Integer decimalScale;
	
	private Integer isPercentage;
	
	private Integer violateTime;

	//跟随订单ID 0为带单
	private Long followId;

	//跟单系统ID
	private Long followSystemId;
	
	//强制平仓时的金额
    private BigDecimal profitOrLoss;
    //分润比例
    private BigDecimal dividendPercent;

    private Integer isSpecial;
    
    private BigDecimal percentageVolume;
    
    private BigDecimal minFollowAmount;
    
    private BigDecimal maxFollowAmount;
    
    private Integer isAdd;
    private Long hedgeId;
}
