Class ProjectJoinRequest
Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
public class ProjectJoinRequest
- Inheritance
-
ProjectJoinRequest
- Inherited Members
Remarks
Join requests allow users to express interest in joining a project. The project owner can review the request and approve or decline it. Requests can include an optional message from the requester and may have an expiration date. A unique token is generated for each request to enable secure approval/decline via email links.
Properties
CreatedAtUtc
Gets or sets the UTC timestamp when this join request was created.
public DateTime CreatedAtUtc { get; set; }
Property Value
- DateTime
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
ExpiresAtUtc
Gets or sets the UTC timestamp when this join request expires, or null if it never expires.
public DateTime? ExpiresAtUtc { get; set; }
Property Value
- DateTime?
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
Remarks
If set, the request cannot be approved after this date. Expired requests should have their status updated to Expired.
Id
Gets or sets the unique identifier for this join request.
public Guid Id { get; set; }
Property Value
- Guid
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
Message
Gets or sets an optional message from the requester explaining why they want to join the project.
public string? Message { get; set; }
Property Value
- string
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
Owner
Gets or sets the project owner who must approve or decline this request.
public User Owner { get; set; }
Property Value
- User
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
OwnerUserId
Gets or sets the unique identifier of the project owner who must approve or decline this request.
public Guid OwnerUserId { get; set; }
Property Value
- Guid
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
Project
Gets or sets the project this join request is for.
public Project Project { get; set; }
Property Value
- Project
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
ProjectId
Gets or sets the unique identifier of the project this join request is for.
public Guid ProjectId { get; set; }
Property Value
- Guid
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
Requester
Gets or sets the user who submitted this join request.
public User Requester { get; set; }
Property Value
- User
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
RequesterUserId
Gets or sets the unique identifier of the user who submitted this join request.
public Guid RequesterUserId { get; set; }
Property Value
- Guid
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
RespondedAtUtc
Gets or sets the UTC timestamp when the request was responded to (approved, declined, etc.), or null if not yet responded to.
public DateTime? RespondedAtUtc { get; set; }
Property Value
- DateTime?
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
ResponseReason
Gets or sets an optional reason provided when the request was responded to (approved, declined, etc.).
public string? ResponseReason { get; set; }
Property Value
- string
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
Status
Gets or sets the current status of this join request.
public ProjectJoinRequestStatus Status { get; set; }
Property Value
- ProjectJoinRequestStatus
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
Token
Gets or sets the unique token associated with this join request, used for secure approval/decline via email links.
public string Token { get; set; }
Property Value
- string
- Represents a request submitted by a user to join a project, which must be approved or declined by the project owner.
Remarks
This token is included in notification emails sent to the project owner and allows them to approve or decline requests without logging in first. The token should be cryptographically secure and unique per request.