package com.market.model;

import lombok.Data;

import java.math.BigDecimal;

/**
 * 合约行情快照，用于向 Redis market-contract 频道推送价格，
 * 供 contract-swap-api 的 MarketListener 接收并驱动引擎价格更新。
 *
 * <p>字段与 dage/contract-swap-core 中的 CoinThumb 保持一致，
 * 确保接收方 JSON 反序列化正常。
 */
@Data
public class CoinThumb {

    /** 交易对符号，格式 BTC/USDT（含斜杠，与引擎 matchMap key 一致） */
    private String symbol;

    /** 开盘价 */
    private BigDecimal open = BigDecimal.ZERO;

    /** 最高价 */
    private BigDecimal high = BigDecimal.ZERO;

    /** 最低价 */
    private BigDecimal low = BigDecimal.ZERO;

    /** 收盘价（最新成交价） */
    private BigDecimal close = BigDecimal.ZERO;

    /** 涨跌幅，保留 4 位小数 */
    private BigDecimal chg = BigDecimal.ZERO.setScale(4);

    /** 涨跌额 */
    private BigDecimal change = BigDecimal.ZERO;

    /** 成交量 */
    private BigDecimal volume = BigDecimal.ZERO;

    /** 成交额 */
    private BigDecimal turnover = BigDecimal.ZERO;

    /** 昨日收盘价 */
    private BigDecimal lastDayClose = BigDecimal.ZERO;

    /** 时间戳（秒） */
    private long time;
}
