Table of Contents

Class ProjectJoinRequest

Namespace
Builvero.Domain.Entities
Assembly
Builvero.Domain.dll

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.