Files
Finlytic/FinlyticCore/Dtos/Yahoo/YahooQuoteDto.cs
T

65 lines
4.0 KiB
C#

using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace FinlyticCore.Dtos.Yahoo;
/// <summary>
/// Response object for Yahoo Finance quick quotes API (/v7/finance/quote?symbols=...).
/// </summary>
public record YahooQuoteResponseDto(
[property: JsonPropertyName("quoteResponse")] YahooQuoteResultWrapperDto? QuoteResponse
);
public record YahooQuoteResultWrapperDto(
[property: JsonPropertyName("result")] List<YahooQuoteItemDto>? Result,
[property: JsonPropertyName("error")] object? Error
);
public record YahooQuoteItemDto(
[property: JsonPropertyName("language")] string? Language,
[property: JsonPropertyName("region")] string? Region,
[property: JsonPropertyName("quoteType")] string? QuoteType,
[property: JsonPropertyName("typeDisp")] string? TypeDisp,
[property: JsonPropertyName("quoteSourceName")] string? QuoteSourceName,
[property: JsonPropertyName("triggerable")] bool? Triggerable,
[property: JsonPropertyName("customPriceAlertConfidence")] string? CustomPriceAlertConfidence,
[property: JsonPropertyName("currency")] string? Currency,
[property: JsonPropertyName("marketState")] string? MarketState,
[property: JsonPropertyName("exchange")] string? Exchange,
[property: JsonPropertyName("shortName")] string? ShortName,
[property: JsonPropertyName("longName")] string? LongName,
[property: JsonPropertyName("messageBoardId")] string? MessageBoardId,
[property: JsonPropertyName("exchangeTimezoneName")] string? ExchangeTimezoneName,
[property: JsonPropertyName("exchangeTimezoneShortName")] string? ExchangeTimezoneShortName,
[property: JsonPropertyName("gmtOffSetMilliseconds")] long? GmtOffSetMilliseconds,
[property: JsonPropertyName("market")] string? Market,
[property: JsonPropertyName("esgPopulated")] bool? EsgPopulated,
[property: JsonPropertyName("regularMarketChangePercent")] double? RegularMarketChangePercent,
[property: JsonPropertyName("regularMarketPrice")] double? RegularMarketPrice,
[property: JsonPropertyName("regularMarketChange")] double? RegularMarketChange,
[property: JsonPropertyName("regularMarketTime")] long? RegularMarketTime,
[property: JsonPropertyName("regularMarketDayHigh")] double? RegularMarketDayHigh,
[property: JsonPropertyName("regularMarketDayRange")] string? RegularMarketDayRange,
[property: JsonPropertyName("regularMarketDayLow")] double? RegularMarketDayLow,
[property: JsonPropertyName("regularMarketVolume")] long? RegularMarketVolume,
[property: JsonPropertyName("regularMarketPreviousClose")] double? RegularMarketPreviousClose,
[property: JsonPropertyName("bid")] double? Bid,
[property: JsonPropertyName("ask")] double? Ask,
[property: JsonPropertyName("bidSize")] long? BidSize,
[property: JsonPropertyName("askSize")] long? AskSize,
[property: JsonPropertyName("fullExchangeName")] string? FullExchangeName,
[property: JsonPropertyName("financialCurrency")] string? FinancialCurrency,
[property: JsonPropertyName("regularMarketOpen")] double? RegularMarketOpen,
[property: JsonPropertyName("averageDailyVolume3Month")] long? AverageDailyVolume3Month,
[property: JsonPropertyName("averageDailyVolume10Day")] long? AverageDailyVolume10Day,
[property: JsonPropertyName("fiftyTwoWeekLowChange")] double? FiftyTwoWeekLowChange,
[property: JsonPropertyName("fiftyTwoWeekLowChangePercent")] double? FiftyTwoWeekLowChangePercent,
[property: JsonPropertyName("fiftyTwoWeekRange")] string? FiftyTwoWeekRange,
[property: JsonPropertyName("fiftyTwoWeekHighChange")] double? FiftyTwoWeekHighChange,
[property: JsonPropertyName("fiftyTwoWeekHighChangePercent")] double? FiftyTwoWeekHighChangePercent,
[property: JsonPropertyName("fiftyTwoWeekLow")] double? FiftyTwoWeekLow,
[property: JsonPropertyName("fiftyTwoWeekHigh")] double? FiftyTwoWeekHigh,
[property: JsonPropertyName("marketCap")] double? MarketCap,
[property: JsonPropertyName("symbol")] string Symbol = ""
);