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);