package com.market.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

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

/**
 * 永续合约交易对
 */
@Data
@TableName("contract_coin")
public class ContractCoin implements Serializable {

    @TableId(type = IdType.AUTO)
    private Long id;

    /** 交易对符号，如 BTC/USDT */
    private String symbol;

    /** 交易币符号，如 BTC */
    private String coinSymbol;

    /** 结算币符号，如 USDT */
    private String baseSymbol;

    /** 合约名称 */
    private String name;

    /** 启用状态：1=启用 */
    private Integer enable;

    /** 是否可交易：1=可交易，2=不可交易 */
    private Integer exchangeable;

    /** 前台可见状态：1=可见，2=不可见 */
    private Integer visible;

    /** 合约类型：0=USDT 结算，1=币本位 */
    private Integer type;

    /** 排序 */
    private Integer sort;

    /** 计价币小数精度 */
    private Integer baseCoinScale;

    /** 交易币小数精度 */
    private Integer coinScale;

    /** 最小精度 */
    private Integer minScale;

    /** 开仓手续费率 */
    private BigDecimal openFee;

    /** 平仓手续费率 */
    private BigDecimal closeFee;

    /** Maker 手续费 */
    private BigDecimal makerFee;

    /** Taker 手续费 */
    private BigDecimal takerFee;

    /** 资金费率 */
    private BigDecimal feePercent;

    /** 资金费用结算间隔（小时） */
    private Integer intervalHour;

    /** 维持保证金率 */
    private BigDecimal maintenanceMarginRate;

    /** 杠杆倍数配置 */
    private String leverage;

    /** 杠杆倍数类型：1=分离，2=连续 */
    private Integer leverageType;

    /** 合约面值（每手价值） */
    private BigDecimal shareNumber;

    /** 最小开仓手数 */
    private BigDecimal minShare;

    /** 单笔最大开仓手数 */
    private BigDecimal maxShare;

    /** 点差值 */
    private BigDecimal spread;

    /** 点差类型：1=百分比，2=固定额 */
    private Integer spreadType;

    /** 是否允许开仓做多 */
    private Integer enableOpenBuy;

    /** 是否允许开仓做空 */
    private Integer enableOpenSell;

    /** 是否启用市价开多仓 */
    private Integer enableMarketBuy;

    /** 是否启用市价开空仓 */
    private Integer enableMarketSell;

    /** 是否启用计划委托 */
    private Integer enableTriggerEntrust;

    /** 最大持仓总手数 */
    private BigDecimal maxTotalShare;

    /** 上层最大持仓总手数 */
    private BigDecimal maxUpperTotalShare;

    /** 顶层最大持仓总手数 */
    private BigDecimal maxTopTotalShare;

    /** 杠杆阈值 */
    private Integer leverageThreshold;

    /** 顶层杠杆阈值 */
    private Integer topLeverageThreshold;

    /** 跟单手续费率 */
    private BigDecimal followFee;

    /** 合约总开仓手续费收入 */
    private BigDecimal totalOpenFee;

    /** 合约总平仓手续费收入 */
    private BigDecimal totalCloseFee;

    /** 平台累计盈利 */
    private BigDecimal totalProfit;

    /** 平台累计亏损 */
    private BigDecimal totalLoss;
}
