namespace Bitget_Server.Api.Dtos;
///
/// /api/diag 엔드포인트 전용 응답 모델.
/// Chart.js financial 플러그인 포맷에 맞춰 {t, o, h, l, c} 가 기본이며,
/// 인디케이터는 선택 필드로 포함된다.
///
public record DiagSymbolsResponse(
IEnumerable Symbols,
IEnumerable Intervals);
public record DiagCandleDto(
long t, // epoch millis (Chart.js x-axis)
double o,
double h,
double l,
double c,
double volC,
double volUsdt,
bool wsUpdated,
bool restUpdated,
DiagIchimokuDto ichimoku,
Dictionary ma,
Dictionary impulseMacd);
public record DiagIchimokuDto(
double 기준선,
double 전환선,
double 후행스팬,
double 선행스팬1,
double 선행스팬2,
double 상한선,
double 하한선,
bool IsLongUp,
bool IsLongDown,
bool IsShortUp,
bool IsShortDown);
public record DiagMovingAverageDto(
double Value,
double Average,
double BolUp,
double BolDown);
public record DiagImpulseMacdDto(double MD, double SH, double SB);
public record DiagCandleResponse(
string Symbol,
string Interval,
int Count,
IEnumerable Candles);
/// PriceLevelTracker 의 전고점/전저점 상태 전체 키·값.
public record DiagPriceLevelsDto(
string Symbol,
string Interval,
string Key,
IReadOnlyDictionary Levels);
/// SignalProcessService 의 현재 신호 요약 (차트 마커용).
public record DiagSignalMarkerDto(
string direction, // "LongUp" / "ShortDown" / "LongDown" / "ShortUp"
string symbol,
string interval,
long t,
double price,
double rate,
double indicatorPrice,
double indicatorRate,
string description);