Table of Contents

Interface ITeamMember

Namespace
Tharga.Team
Assembly
Tharga.Team.dll
public interface ITeamMember

Properties

AccessLevel

The member's level in the team, or null when none was ever set. Null grants nothing: no scopes, no AccessLevel claim, and it ranks below every level. Before 4.0 an unset level read as Owner, the enum's zero value.

AccessLevel? AccessLevel { get; }

Property Value

AccessLevel?

Invitation

Invitation Invitation { get; }

Property Value

Invitation

Key

string Key { get; }

Property Value

string

LastSeen

When the member was last active in this team, approximately: stamped whenever the team is resolved as the member's selected team, at most once per TeamServiceBase.LastSeenStampInterval (15 minutes by default). Distinct from LastSeen, which is any authenticated activity at all.

DateTime? LastSeen { get; }

Property Value

DateTime?

Remarks

Changed in 4.1 (Tharga/Team#317): it was stamped only when a team was selected, so a member who never switched teams kept the date they joined.

Name

string Name { get; }

Property Value

string

ScopeOverrides

string[] ScopeOverrides { get; }

Property Value

string[]

State

MembershipState? State { get; }

Property Value

MembershipState?

SuspendedAt

When this member's access to the team was suspended, or null if it is active. A suspended member keeps their membership, access level, roles and history, and still sees the team in the selector — they are granted no team scopes, so every scoped operation refuses.

DateTime? SuspendedAt { get; }

Property Value

DateTime?

Remarks

Opt-in by shape, like DisabledAt: declare the property on the member entity to persist it, and override TeamServiceBase.SetTeamMemberSuspendedAsync.

Deliberately not a fourth MembershipState. Host stores list a user's teams by filtering State == MembershipState.Member, so a suspended state would remove the team from the selector entirely — the opposite of the intent, and unfixable from inside the toolkit because that filter lives in host code. Keeping State at Member means every existing query keeps working untouched.

SuspendedBy

Who suspended this member, or null.

string SuspendedBy { get; }

Property Value

string

TenantRoles

string[] TenantRoles { get; }

Property Value

string[]