Class TeamAccessRequestEntity
A TeamAccessRequest as stored inside its team document.
public sealed record TeamAccessRequestEntity : IEquatable<TeamAccessRequestEntity>
- Inheritance
-
TeamAccessRequestEntity
- Implements
- Inherited Members
Remarks
A separate type so the enums carry [BsonRepresentation(BsonType.String)]; the contract in
Tharga.Team has no storage dependency to put the attribute on. Stored on the team so approving a request
and setting the team's consent are one document update.
Properties
AccessLevel
[BsonRepresentation(BsonType.String)]
public required AccessLevel AccessLevel { get; init; }
Property Value
DecidedAt
[BsonIgnoreIfNull]
public DateTime? DecidedAt { get; init; }
Property Value
DecidedBy
[BsonIgnoreIfNull]
public string DecidedBy { get; init; }
Property Value
Duration
[BsonIgnoreIfNull]
public TimeSpan? Duration { get; init; }
Property Value
GrantedUntil
[BsonIgnoreIfNull]
public DateTime? GrantedUntil { get; init; }
Property Value
Id
public required string Id { get; init; }
Property Value
Message
[BsonIgnoreIfNull]
public string Message { get; init; }
Property Value
RequestedAt
public required DateTime RequestedAt { get; init; }
Property Value
RequesterKey
public required string RequesterKey { get; init; }
Property Value
RequesterName
[BsonIgnoreIfNull]
public string RequesterName { get; init; }
Property Value
Status
[BsonRepresentation(BsonType.String)]
public TeamAccessRequestStatus Status { get; init; }
Property Value
Methods
FromContract(TeamAccessRequest)
public static TeamAccessRequestEntity FromContract(TeamAccessRequest request)
Parameters
requestTeamAccessRequest
Returns
ToContract()
public TeamAccessRequest ToContract()