Table of Contents

Class MailboxMutationAuditQuery

Namespace
MailFathom.Application.Mail.Mutations.Audit
Assembly
MailFathom.Application.dll

Asks one bounded, keyset-paginated page of an account's audit trail.

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

Remarks

The account is required rather than optional, and every other filter narrows within it. Enabling the trail, its retention, and its erasure are all decisions one account's operator makes, so reading it is scoped the same way — and a surface over derived personal data is better for making a caller name whose mail they are looking at than for serving a deployment-wide list nobody asked a question about.

A page is always bounded and always ordered newest first, so a caller that supplies nothing gets the most recent DefaultPageSize entries rather than the whole trail.

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 trail is read.

CompletedBefore

Gets the completion instant the page stops before, exclusive, or null when it reaches the newest entry.

CompletedFrom

Gets the earliest completion instant served, inclusive, or null when the page reaches back as far as the trail does.

Cursor

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

FilterFingerprint

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

Mutation

Gets the mutation the page is narrowed to, or the unspecified default when every mutation is served.

PageSize

Gets how many entries the page holds at most.

Methods

Create(MailAccountId, MailboxMutation, DateTimeOffset?, DateTimeOffset?, int?, MailboxMutationAuditCursor?)

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