Table of Contents

Interface ITeamMember

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

Properties

AccessLevel

AccessLevel AccessLevel { get; }

Property Value

AccessLevel

Invitation

Invitation Invitation { get; }

Property Value

Invitation

Key

string Key { get; }

Property Value

string

LastSeen

DateTime? LastSeen { get; }

Property Value

DateTime?

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[]