Table of Contents

Class SupportMessage

Namespace
Tharga.Team
Assembly
Tharga.Team.dll

One entry in a support case's transcript.

public record SupportMessage : IEquatable<SupportMessage>
Inheritance
SupportMessage
Implements
Inherited Members

Remarks

The author is recorded twice, and both are needed. AuthorIdentity is the stable subject that survives everything and can be matched exactly; AuthorName is a snapshot taken when the message was written, so the transcript stays readable after the author is deleted or leaves the team. The audit trail carries the same pair, for the same reason — see AuditEntry.CallerUserIdentity and AuditEntry.CallerIdentity.

Properties

AuthorIdentity

The author's stable authentication subject, or null for a System entry.

public string AuthorIdentity { get; init; }

Property Value

string

AuthorName

The author's display name as it was when the message was written.

public string AuthorName { get; init; }

Property Value

string

Body

public required string Body { get; init; }

Property Value

string

Delivery

Whether this entry reached the case's external channel.

public SupportMessageDelivery Delivery { get; init; }

Property Value

SupportMessageDelivery

Remarks

A message that arrived from a channel is Sent by definition — it is already there, and posting it back would echo it.

Kind

public required SupportMessageKind Kind { get; init; }

Property Value

SupportMessageKind

SentAt

public required DateTime SentAt { get; init; }

Property Value

DateTime

Sequence

Position in the case's transcript, from 1. Also the paging cursor.

public required int Sequence { get; init; }

Property Value

int

Source

The channel this entry arrived from, or null when it was written through the application itself.

public SupportChannelType? Source { get; init; }

Property Value

SupportChannelType?

Remarks

Where a message came from is not the same question as who wrote it. Kind says whether a person or the toolkit produced the entry; this says which door it came through, and the two vary independently.

It carries how much the attribution can be trusted, which is why it is worth surfacing rather than logging. An entry written through the application was authored by an authenticated caller. One from Email was not: mail is accepted on a sender match, because nothing about a From: header authenticates anybody. A reader deciding how much weight to put on a name needs to be able to tell those apart.