using System; using System.Text.Json.Serialization; namespace FinlyticCore.Dtos.TradeRepublic; public record TradeRepublicPriceTick( [property: JsonPropertyName("time")] long? Time = null, [property: JsonPropertyName("price"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] decimal Price = 0m, [property: JsonPropertyName("size")] decimal? Size = null ) { public decimal PriceValue => Price; public DateTime DateTimeUtc => Time.HasValue && Time.Value > 0 ? DateTimeOffset.FromUnixTimeMilliseconds(Time.Value).UtcDateTime : DateTime.UtcNow; } 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 );