package com.goldenchart.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * REST API / STOMP 용 캔들 데이터 전송 객체.
 *
 * REST  : GET /api/candles/history 응답 배열 요소
 * STOMP : /sub/charts/{market}/{type} 실시간 경량 페이로드
 *
 * 명세서 5.1 / 5.2 포맷 준수:
 *  - time  : Unix 초 타임스탬프
 *  - o/h/l/c/v : OHLCV
 *  - rsi   : RSI 값 (null 허용)
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CandleBarDto {

    /** Unix 초 타임스탬프 (캔들 시작 시간) */
    private long time;

    private double open;
    private double high;
    private double low;
    private double close;
    private double volume;

    /** RSI 값. 계산 불가 구간(워밍업)에서는 null */
    private Double rsi;

    /**
     * 실시간 전략 체크 시그널.
     * "BUY" | "SELL" | "NONE" (null 이면 전략 체크 미설정)
     */
    private String signal;
}
