Table of Contents

Class MailAnsweringAuditedEmail

Namespace
MailFathom.Domain.Answering.Audit
Assembly
MailFathom.Domain.dll

One email an answering run read, and whether the answer went on to name it.

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

Remarks

One shape rather than two lists, so the cited set cannot name a message the run never retrieved: the subset relation is structural instead of an invariant somebody has to keep. What separates the two is that retrieval is what the run read and a citation is what the response published — a response bounded to fewer citations than the run retrieved emails is exactly the case where the difference is the answer.

The identity is the whole of what is kept. No extract, no subject, and no address: a record that stored the retrieved passages would be a second copy of the mailbox with its own retention, access, and erasure obligations, for the sake of a debugging convenience. What the identity buys instead is that the message can be fetched and read whole, by somebody entitled to it, through the reads that already serve it.

The position is kept because the order a run reached mail in is part of what happened, and it survives the entry losing an email to that email's own deletion — a gap in the positions then says that something was read and is gone, rather than leaving a shorter list that reads as a shorter run.

Constructors

MailAnsweringAuditedEmail(StoredEmailId, int, bool)

One email an answering run read, and whether the answer went on to name it.

Properties

Position

Where in the run's retrieval this email was first reached, counted from zero.

StoredEmailId

The stable local identity, which is the same one every other read names an email by.

WasCited

Whether the published answer named this email as one of its sources.