namespace AIStudio.Tools.Databases.IndexStore; /// /// One part of a mail as AI Studio read it: the header block, the body or an attachment. /// /// /// The chunks hold the same text, but cut into overlapping pieces. Reading a mail as a whole, or /// checking its header block, needs it in one piece, and without asking the server again. /// internal sealed class MailPartEntity { public int Id { get; set; } public string ParentFileId { get; set; } = string.Empty; /// /// HEADERS, BODY or ATTACHMENT, stored by name. /// public string Kind { get; set; } = string.Empty; /// /// The place of the part among the parts of its kind, starting at zero. /// public int Position { get; set; } /// /// The file name of an attachment, empty for the other parts. /// public string Name { get; set; } = string.Empty; public string ContentType { get; set; } = string.Empty; /// /// The size of the part on the server, in bytes. /// public long PartSize { get; set; } /// /// The text of the part, or null when there is none. TextState says why. /// public string? Text { get; set; } /// /// Whether the text could be read and, when not, why, stored by name. /// public string TextState { get; set; } = string.Empty; public MailMessageEntity? Message { get; set; } }