44 lines
1.6 KiB
C#
44 lines
1.6 KiB
C#
using System.Text.Json.Serialization;
|
|
|
|
namespace FinlyticCore.Dtos.News;
|
|
|
|
/// <summary>
|
|
/// Payload representing the pre-filtered asset configuration dispatched to n8n.
|
|
/// </summary>
|
|
public record FilteredAssetPayload(
|
|
[property: JsonPropertyName("Name")] string Name,
|
|
[property: JsonPropertyName("Isin")] string Isin
|
|
);
|
|
|
|
/// <summary>
|
|
/// Webhook payload structure dispatched to the n8n workflow.
|
|
/// </summary>
|
|
public record N8nRequestPayload(
|
|
[property: JsonPropertyName("article")] string Article,
|
|
[property: JsonPropertyName("filtered_assets")] List<FilteredAssetPayload> FilteredAssets
|
|
);
|
|
|
|
/// <summary>
|
|
/// Matched asset returned by the n8n AI workflow classification.
|
|
/// </summary>
|
|
public record N8nMatchedAssetPayload(
|
|
[property: JsonPropertyName("ticker")] string? Ticker,
|
|
[property: JsonPropertyName("name")] string Name,
|
|
[property: JsonPropertyName("confidence_score")] double ConfidenceScore
|
|
);
|
|
|
|
/// <summary>
|
|
/// Enriched response payload returned by the n8n workflow webhook.
|
|
/// </summary>
|
|
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<N8nMatchedAssetPayload> MatchedAssets
|
|
);
|