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