package com.goldenchart.dto;

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

import java.util.List;

/**
 * 실시간 전략 체크 설정 DTO.
 * PUT /api/strategy/settings  (요청/응답 공용)
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LiveStrategySettingsDto {

    /** 업비트 마켓 코드 (e.g. "KRW-BTC") */
    private String  market;

    /** 연결된 전략 ID (null = 미연결) */
    private Long    strategyId;

    /** 실시간 체크 ON/OFF (JSON 키: isLiveCheck) */
    @JsonProperty("isLiveCheck")
    private boolean liveCheck;

    /** "CANDLE_CLOSE" | "REALTIME_TICK" */
    private String  executionType;

    /**
     * @deprecated 전략 DSL의 START/TIMEFRAME에서 시간봉을 자동 추출합니다. 응답 전용 필드는 {@link #strategyCandleTypes}를 사용하세요.
     */
    @Deprecated
    @Builder.Default
    private String  candleType = "1m";

    /** 전략 조건 DSL에 포함된 평가 시간봉 목록 (응답 전용) */
    private List<String> strategyCandleTypes;

    /** 매도 시그널 포지션 종속성 모드: "LONG_ONLY" | "SIGNAL_ONLY" */
    @Builder.Default
    private String  positionMode = "LONG_ONLY";
}
