namespace AIStudio.Tools.Databases.IndexStore;
///
/// One folder of a mailbox and how far its sync got.
///
internal sealed class MailFolderEntity
{
public int Id { get; set; }
public string DataSourceId { get; set; } = string.Empty;
///
/// The full path of the folder, as the server names it.
///
public string Path { get; set; } = string.Empty;
///
/// The special use the server announces for the folder, e.g., SENT, or NONE, stored by name.
///
public string SpecialUse { get; set; } = string.Empty;
///
/// The UIDVALIDITY the stored locations of this folder belong to.
///
///
/// When the server reports another one, every UID stored for this folder is void.
///
public long UidValidity { get; set; }
///
/// The UIDNEXT at the end of the last complete pass over the folder, or null until one completed.
///
public long? UidNext { get; set; }
///
/// The HIGHESTMODSEQ at the end of the last complete pass over the folder, or null until one
/// completed, or when the server does not support CONDSTORE.
///
public long? HighestModSeq { get; set; }
///
/// How many mails the folder holds on the server (STATUS MESSAGES), or null when not read yet.
///
public long? ServerMessageCount { get; set; }
///
/// How many of them are unread (STATUS UNSEEN), or null when not read yet.
///
public long? ServerUnseenCount { get; set; }
///
/// When every mail of the folder which belongs into the index was in it for the first time, or
/// null while that first pass is still running.
///
public DateTimeOffset? InitialSyncCompletedUtc { get; set; }
public List Locations { get; set; } = [];
}