using AIStudio.Settings.DataModel;
using AIStudio.Tools.Databases.IndexStore;
using AIStudio.Tools.Services;
namespace AIStudio.Tools.ToolCallingSystem.ToolCallingImplementations.Mailboxes;
///
/// One mailbox, ready to be searched page by page.
///
///
/// What a search has to know about a mailbox before it searches is read once per call, however
/// many pages of the mailbox the search turns.
///
/// The mailbox.
/// How far its index reaches, or null when that cannot be read.
/// The conditions as they apply to this mailbox, or null when it could not be read any more, so that nothing is searched.
/// Whether the mailbox has none of the folders the model named, so that nothing is searched.
/// What was done about drafts which may have changed since the last sync.
internal sealed record MailboxSearch(DataSourceMailbox Mailbox, MailboxCoverage? Coverage, MailFilter? Filter, bool FolderIsMissing, MailDraftSyncDecision DraftSync);