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