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.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 交易所订单实体类
 *
 * @author system
 * @date 2026-05-07
 */
@Data
@TableName("ex_order")
public class ExOrder {

    /** 主键ID */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 用户ID */
    private Integer userId;

    /** 买卖方向：BUY-买入, SELL-卖出 */
    private String side;

    /** 价格 */
    private BigDecimal price;

    /** 数量 */
    private BigDecimal volume;

    /** 剩余数量 */
    private BigDecimal remainingVolume;

    /** 挂单手续费率 */
    private Double feeRateMaker;

    /** 吃单手续费率 */
    private Double feeRateTaker;

    /** 手续费 */
    private BigDecimal fee;

    /** 手续费币种 */
    private String feeCoin;

    /** 成交数量 */
    private BigDecimal dealVolume;

    /** 成交金额 */
    private BigDecimal dealMoney;

    /** 平均成交价 */
    private BigDecimal avgPrice;

    /**
     * 订单状态
     * @see com.market.spot.enums.OrderStatus
     */
    private Integer status;

    /**
     * 订单类型：1=限价，2=市价
     */
    private Integer type;

    /** 创建时间 */
    private LocalDateTime ctime;

    /** 更新时间 */
    private LocalDateTime mtime;

    /** 来源 */
    private Integer source;

    /** 交易对符号 */
    private String symbol;

    /** 退款数量 */
    private BigDecimal refundVolume;
}
