using AIStudio.Tools.Databases.IndexStore; namespace AIStudio.Tools.Services; /// /// How far the index of a mailbox reaches, so that an answer from it can say what it does not cover. /// /// Since when mails are indexed, or null when all of them are. Flagged mails are indexed regardless of their age. /// When the last complete sync ended, or null while the first one is still running. /// When the server refused to let AI Studio sign in, or null when it did not. Until the user deals with that, no new mail arrives in the index. /// How many mails the index still holds although a sync would have removed them, waiting for the user to agree, or null when there are none. /// The folders of the mailbox and how far their sync got, ordered by path. public sealed record MailboxCoverage(DateTimeOffset? ReceivedSinceUtc, DateTimeOffset? LastCompleteSyncUtc, DateTimeOffset? SignInRefusedAtUtc, int? PendingRemovalCount, IReadOnlyList Folders);