Table of Contents

Class SpamClassificationHistoryQuery

Namespace
MailFathom.Application.Spam.History
Assembly
MailFathom.Application.dll

Asks one bounded, keyset-paginated page of what classification concluded about an account's mail.

public sealed record SpamClassificationHistoryQuery : IEquatable<SpamClassificationHistoryQuery>
Inheritance
SpamClassificationHistoryQuery
Implements
Inherited Members

Remarks

The account is required rather than optional, and every other filter narrows within it. Retention and erasure are decisions made per account, so reading is scoped the same way — and a surface over derived personal data is better for making a caller name whose mailbox they are asking about than for serving a deployment-wide list.

The three optional filters are the three ways an operator arrives here: the verdict answers what a run decided over a mailbox, the message answers why one message was filed, and the time range answers what one run concluded, since a run is bounded by when it started and when it ended. They compose rather than exclude.

A page is always bounded and always ordered newest first, so a caller that supplies nothing gets the most recent DefaultPageSize classifications rather than every message of the mailbox.

Fields

DefaultPageSize

The page size a request that names none is served.

MaximumPageSize

The greatest page size one request may ask for.

Properties

AccountId

Gets the account whose classifications are read.

Cursor

Gets the boundary a continued walk reads beyond, or null for the first page.

EvaluatedBefore

Gets the evaluation instant the page stops before, exclusive, or null when it reaches the newest record.

EvaluatedFrom

Gets the earliest evaluation instant served, inclusive, or null when the page reaches as far back as the records do.

FilterFingerprint

Gets the fingerprint of the filters this query reads under, which its cursors are issued against.

PageSize

Gets how many classifications the page holds at most.

StoredEmailId

Gets the occurrence the page is narrowed to, or null for every occurrence of the account.

Verdict

Gets the verdict the page is narrowed to, or null for every verdict.

Methods

Create(MailAccountId, StoredEmailId?, SpamVerdict?, DateTimeOffset?, DateTimeOffset?, int?, SpamClassificationHistoryCursor?)

Builds a validated query from what a caller asked for, or reports why the request names no page.