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
);