using System; using System.Collections.Generic; using System.Text.Json.Serialization; namespace FinlyticCore.Dtos.TechnicalAnalysis; public record PatternPointDto( [property: JsonPropertyName("time")] DateTime Time, [property: JsonPropertyName("price")] decimal Price ); public record BreakoutSignalDto( [property: JsonPropertyName("time")] DateTime Time, [property: JsonPropertyName("direction")] string Direction, // "BUY" or "SELL" [property: JsonPropertyName("triggerPrice")] decimal TriggerPrice, [property: JsonPropertyName("targetPrice")] decimal TargetPrice, [property: JsonPropertyName("potentialPercent")] decimal? PotentialPercent = null ); public record ChartPatternDto( [property: JsonPropertyName("type")] string Type, // "AscendingTriangle", "DescendingTriangle", "SymmetricalTriangle", "DoubleBottom", "DoubleTop", "HeadAndShoulders" [property: JsonPropertyName("description")] string? Description, [property: JsonPropertyName("upperLine")] List UpperLine, [property: JsonPropertyName("lowerLine")] List LowerLine, [property: JsonPropertyName("apexTime")] DateTime? ApexTime, [property: JsonPropertyName("breakoutSignal")] BreakoutSignalDto? BreakoutSignal, [property: JsonPropertyName("confidencePercent")] decimal? ConfidencePercent = null );