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; } = []; }