using System.Collections.Generic; using System.Text.Json.Serialization; namespace FinlyticCore.Dtos.Yahoo; /// /// Response object for Yahoo Finance chart API (/v8/finance/chart/{symbol}). /// public record YahooChartResponseDto( [property: JsonPropertyName("chart")] YahooChartResultWrapperDto? Chart ); public record YahooChartResultWrapperDto( [property: JsonPropertyName("result")] List? Result, [property: JsonPropertyName("error")] object? Error ); public record YahooChartResultDto( [property: JsonPropertyName("meta")] YahooChartMetaDto? Meta, [property: JsonPropertyName("timestamp")] List? Timestamp, [property: JsonPropertyName("indicators")] YahooChartIndicatorsDto? Indicators ); public record YahooChartMetaDto( [property: JsonPropertyName("currency")] string? Currency, [property: JsonPropertyName("symbol")] string? Symbol, [property: JsonPropertyName("exchangeName")] string? ExchangeName, [property: JsonPropertyName("fullExchangeName")] string? FullExchangeName, [property: JsonPropertyName("instrumentType")] string? InstrumentType, [property: JsonPropertyName("firstTradeDate")] long? FirstTradeDate, [property: JsonPropertyName("regularMarketTime")] long? RegularMarketTime, [property: JsonPropertyName("hasPrePostMarketData")] bool? HasPrePostMarketData, [property: JsonPropertyName("gmtoffset")] int? GmtOffset, [property: JsonPropertyName("timezone")] string? Timezone, [property: JsonPropertyName("exchangeTimezoneName")] string? ExchangeTimezoneName, [property: JsonPropertyName("regularMarketPrice")] double? RegularMarketPrice, [property: JsonPropertyName("fiftyTwoWeekHigh")] double? FiftyTwoWeekHigh, [property: JsonPropertyName("fiftyTwoWeekLow")] double? FiftyTwoWeekLow, [property: JsonPropertyName("regularMarketDayHigh")] double? RegularMarketDayHigh, [property: JsonPropertyName("regularMarketDayLow")] double? RegularMarketDayLow, [property: JsonPropertyName("regularMarketVolume")] long? RegularMarketVolume, [property: JsonPropertyName("chartPreviousClose")] double? ChartPreviousClose, [property: JsonPropertyName("previousClose")] double? PreviousClose, [property: JsonPropertyName("scale")] int? Scale, [property: JsonPropertyName("priceHint")] int? PriceHint, [property: JsonPropertyName("dataGranularity")] string? DataGranularity, [property: JsonPropertyName("range")] string? Range, [property: JsonPropertyName("validRanges")] List? ValidRanges ); public record YahooChartIndicatorsDto( [property: JsonPropertyName("quote")] List? Quote, [property: JsonPropertyName("adjclose")] List? AdjClose ); public record YahooChartQuoteDto( [property: JsonPropertyName("open")] List? Open, [property: JsonPropertyName("high")] List? High, [property: JsonPropertyName("low")] List? Low, [property: JsonPropertyName("close")] List? Close, [property: JsonPropertyName("volume")] List? Volume ); public record YahooChartAdjCloseDto( [property: JsonPropertyName("adjclose")] List? AdjClose );