Class SupportCaseReadEntity
How far one person has read a case's transcript.
public record SupportCaseReadEntity : IEquatable<SupportCaseReadEntity>
- Inheritance
-
SupportCaseReadEntity
- Implements
- Inherited Members
Remarks
Embedded, and bounded by the number of participants in one case - not one row per user per case across the whole system, which is what a separate collection would become. Members embed in a team and the transcript embeds in a case for the same reason.
Keyed on the sequence, not a timestamp. "Read up to entry seven" is exact; "read at 12:04" has to agree with clocks it has no reason to trust, and the transcript is already sequenced because paging needs it to be.
Identity is the stable authentication subject, the same value the author fields and the audit trail use. A per-team member key stops resolving when somebody leaves the team, and a case outlives a membership - read state keyed on one would become unattributable exactly when the case is still open.
Properties
Identity
public required string Identity { get; init; }
Property Value
LastReadSequence
The highest transcript sequence this person has seen.
public required int LastReadSequence { get; init; }
Property Value
ReadAt
public required DateTime ReadAt { get; init; }