using System; using System.Globalization; using System.Text.Json.Serialization; namespace FinlyticCore.Models.TradeRepublic; public record TradeRepublicPriceTick( [property: JsonPropertyName("time")] long Time, [property: JsonPropertyName("price")] string Price, [property: JsonPropertyName("size")] decimal Size ) { public decimal PriceValue => decimal.TryParse(Price, NumberStyles.Any, CultureInfo.InvariantCulture, out var v) ? v : 0m; public DateTime DateTimeUtc => DateTimeOffset.FromUnixTimeMilliseconds(Time).UtcDateTime; } public record TradeRepublicTickerResponse( [property: JsonPropertyName("bid")] TradeRepublicPriceTick? Bid, [property: JsonPropertyName("ask")] TradeRepublicPriceTick? Ask, [property: JsonPropertyName("last")] TradeRepublicPriceTick? Last, [property: JsonPropertyName("pre")] TradeRepublicPriceTick? Pre, [property: JsonPropertyName("open")] TradeRepublicPriceTick? Open, [property: JsonPropertyName("qualityId")] string? QualityId, [property: JsonPropertyName("leverage")] decimal? Leverage, [property: JsonPropertyName("delta")] decimal? Delta );