using System.Text.Json.Serialization; namespace FinlyticCore.Dtos.News; /// /// Payload representing the pre-filtered asset configuration dispatched to n8n. /// public record FilteredAssetPayload( [property: JsonPropertyName("Name")] string Name, [property: JsonPropertyName("Isin")] string Isin ); /// /// Webhook payload structure dispatched to the n8n workflow. /// public record N8nRequestPayload( [property: JsonPropertyName("article")] string Article, [property: JsonPropertyName("filtered_assets")] List FilteredAssets ); /// /// Matched asset returned by the n8n AI workflow classification. /// public record N8nMatchedAssetPayload( [property: JsonPropertyName("ticker")] string? Ticker, [property: JsonPropertyName("name")] string Name, [property: JsonPropertyName("confidence_score")] double ConfidenceScore ); /// /// Enriched response payload returned by the n8n workflow webhook. /// public record N8nResponsePayload( [property: JsonPropertyName("title")] string Title, [property: JsonPropertyName("author")] string? Author, [property: JsonPropertyName("published_at")] string? PublishedAt, [property: JsonPropertyName("scraped_at")] string? ScrapedAt, [property: JsonPropertyName("source_url")] string SourceUrl, [property: JsonPropertyName("summary")] string? Summary, [property: JsonPropertyName("content_raw")] string ContentRaw, [property: JsonPropertyName("language")] string? Language, [property: JsonPropertyName("matched_assets")] List MatchedAssets );