package com.spot.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;

/**
 * 交易对滑点配置实体类
 * 支持对同一交易对按交易额区间设置不同滑点比例
 * 匹配规则：amount_min <= 成交额 < amount_max，amount_max 为 null 表示无上限
 *
 * @author jean
 * @date 2026-05-08
 */
@Data
@TableName("config_symbol_slippage")
public class ConfigSymbolSlippage {

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

    /**
     * 交易对符号（如：BTCUSDT）
     */
    private String symbol;

    /**
     * 交易额区间下限（含），单位：计价币
     */
    private BigDecimal amountMin;

    /**
     * 交易额区间上限（不含），null 表示无上限
     */
    private BigDecimal amountMax;

    /**
     * 滑点比例（如：0.001000 表示 0.1%）
     */
    private BigDecimal slippage;

    /**
     * 是否启用：0-禁用，1-启用
     */
    private Integer isOpen;

    /**
     * 排序（同交易对内按升序匹配区间）
     */
    private Integer sort;

    /**
     * 备注
     */
    private String remark;

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

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