AI-Studio/app/MindWork AI Studio/Settings/DataModel/SseEvent.cs

88 lines
1.8 KiB
C#
Raw Normal View History

using System.Text.Json.Serialization;
namespace AIStudio.Settings.DataModel;
public class SseEvent
{
[JsonPropertyName("content")]
2025-06-24 08:16:39 +00:00
public string? Content { get; set; }
[JsonPropertyName("metadata")]
2025-06-24 08:16:39 +00:00
public Metadata? Metadata { get; set; }
}
[JsonConverter(typeof(MetadataJsonConverter))]
public abstract class Metadata;
public class TextMetadata : Metadata
{
[JsonPropertyName("Text")]
2025-06-24 08:16:39 +00:00
public TextDetails? Text { get; set; }
}
public class TextDetails
{
[JsonPropertyName("line_number")]
2025-06-24 08:16:39 +00:00
public int? LineNumber { get; set; }
}
public class PdfMetadata : Metadata
{
[JsonPropertyName("Pdf")]
2025-06-24 08:16:39 +00:00
public PdfDetails? Pdf { get; set; }
}
public class PdfDetails
{
[JsonPropertyName("page_number")]
2025-06-24 08:16:39 +00:00
public int? PageNumber { get; set; }
}
public class SpreadsheetMetadata : Metadata
{
[JsonPropertyName("Spreadsheet")]
2025-06-24 08:16:39 +00:00
public SpreadsheetDetails? Spreadsheet { get; set; }
}
public class SpreadsheetDetails
{
[JsonPropertyName("sheet_name")]
2025-06-24 08:16:39 +00:00
public string? SheetName { get; set; }
[JsonPropertyName("row_number")]
2025-06-24 08:16:39 +00:00
public int? RowNumber { get; set; }
}
public class DocumentMetadata : Metadata {}
2025-06-24 08:16:39 +00:00
public class ImageMetadata: Metadata {}
public class PresentationMetadata : Metadata
{
[JsonPropertyName("Presentation")]
2025-06-24 08:16:39 +00:00
public PresentationDetails? Presentation { get; set; }
}
public class PresentationDetails
{
[JsonPropertyName("slide_number")]
2025-06-24 08:16:39 +00:00
public int? SlideNumber { get; set; }
[JsonPropertyName("image")]
2025-06-24 08:16:39 +00:00
public PptxImageData? Image { get; set; }
}
2025-06-24 08:16:39 +00:00
public class PptxImageData
{
[JsonPropertyName("id")]
2025-06-24 08:16:39 +00:00
public string? Id { get; set; }
[JsonPropertyName("content")]
2025-06-24 08:16:39 +00:00
public string? Content { get; set; }
[JsonPropertyName("segment")]
2025-06-24 08:16:39 +00:00
public int? Segment { get; set; }
[JsonPropertyName("is_end")]
public bool IsEnd { get; set; }
}