using System; using System.Collections.Generic; using System.Text.Json.Serialization; namespace FinlyticCore.Models.Analyzer; public class AssetRecommendationDto { [JsonPropertyName("mode")] public string Mode { get; set; } = "AUTO_SCREENER"; [JsonPropertyName("timestamp")] public DateTime Timestamp { get; set; } = DateTime.UtcNow; [JsonPropertyName("recommended_asset")] public RecommendedAssetInfo RecommendedAsset { get; set; } = new(); [JsonPropertyName("rationale")] public RecommendationRationaleInfo Rationale { get; set; } = new(); [JsonPropertyName("action_required")] public string ActionRequired { get; set; } = "PROMPT_USER_FOR_MANUAL_TRADE"; // "PROMPT_USER_FOR_MANUAL_TRADE" | "NO_ACTION" } public class RecommendedAssetInfo { [JsonPropertyName("symbol")] public string Symbol { get; set; } = string.Empty; [JsonPropertyName("company_name")] public string CompanyName { get; set; } = string.Empty; [JsonPropertyName("isin")] public string Isin { get; set; } = string.Empty; [JsonPropertyName("market")] public string Market { get; set; } = "US_EQUITIES"; [JsonPropertyName("bias")] public string Bias { get; set; } = "BULLISH"; // "BULLISH" | "BEARISH" | "NEUTRAL" [JsonPropertyName("confidence_score")] public double ConfidenceScore { get; set; } [JsonPropertyName("timeframe")] public string Timeframe { get; set; } = "1D"; } public class RecommendationRationaleInfo { [JsonPropertyName("pattern_detected")] public string PatternDetected { get; set; } = string.Empty; [JsonPropertyName("vix_context")] public string VixContext { get; set; } = string.Empty; [JsonPropertyName("key_technical_levels")] public KeyTechnicalLevelsInfo KeyTechnicalLevels { get; set; } = new(); [JsonPropertyName("summary")] public string Summary { get; set; } = string.Empty; } public class KeyTechnicalLevelsInfo { [JsonPropertyName("support")] public List Support { get; set; } = new(); [JsonPropertyName("resistance")] public List Resistance { get; set; } = new(); }