Table of Contents

Class Project

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

Represents a project in the Builvero platform that builders can join and collaborate on.

public class Project
Inheritance
Project
Inherited Members

Remarks

Projects are created by users and can have multiple members. Each project has a category, status, and can be associated with builder tags and skills to help match interested builders. Projects also have forums for discussion and collaboration.

Properties

Category

Gets or sets the category classification for this project.

public ProjectCategory Category { get; set; }

Property Value

ProjectCategory
Represents a project in the Builvero platform that builders can join and collaborate on.

CreatedAt

Gets or sets the UTC timestamp when the project was created.

public DateTime CreatedAt { get; set; }

Property Value

DateTime
Represents a project in the Builvero platform that builders can join and collaborate on.

Description

Gets or sets the main description of the project, providing an overview of what the project is about.

public string Description { get; set; }

Property Value

string
Represents a project in the Builvero platform that builders can join and collaborate on.

ForumTopics

Gets or sets the collection of forum topics associated with this project.

public List<ProjectForumTopic> ForumTopics { get; set; }

Property Value

List<ProjectForumTopic>
Represents a project in the Builvero platform that builders can join and collaborate on.

Remarks

Forum topics enable project members to discuss project-related matters, share updates, and collaborate.

Id

Gets or sets the unique identifier for the project.

public Guid Id { get; set; }

Property Value

Guid
Represents a project in the Builvero platform that builders can join and collaborate on.

Invitations

Gets or sets the collection of project invitations sent for this project.

public List<ProjectInvitation> Invitations { get; set; }

Property Value

List<ProjectInvitation>
Represents a project in the Builvero platform that builders can join and collaborate on.

JoinRequests

Gets or sets the collection of join requests submitted for this project.

public List<ProjectJoinRequest> JoinRequests { get; set; }

Property Value

List<ProjectJoinRequest>
Represents a project in the Builvero platform that builders can join and collaborate on.

Memberships

Gets or sets the collection of project memberships, representing all users who are members of this project.

public List<ProjectMembership> Memberships { get; set; }

Property Value

List<ProjectMembership>
Represents a project in the Builvero platform that builders can join and collaborate on.

Name

Gets or sets the name of the project.

public string Name { get; set; }

Property Value

string
Represents a project in the Builvero platform that builders can join and collaborate on.

Remarks

This is a required field and is used for display throughout the platform. Project names should be unique or at least distinguishable to avoid confusion.

Owner

Gets or sets the user who owns this project.

public User Owner { get; set; }

Property Value

User
Represents a project in the Builvero platform that builders can join and collaborate on.

OwnerUserId

Gets or sets the unique identifier of the user who owns this project.

public Guid OwnerUserId { get; set; }

Property Value

Guid
Represents a project in the Builvero platform that builders can join and collaborate on.

Remarks

The owner has full control over the project, including the ability to invite members, manage join requests, and modify project details.

PreferredExperienceLevel

Gets or sets an optional preferred experience level for builders interested in joining this project.

public string? PreferredExperienceLevel { get; set; }

Property Value

string
Represents a project in the Builvero platform that builders can join and collaborate on.

Remarks

This is a free-form text field that can describe the desired experience level (e.g., "Beginner", "Intermediate", "Expert").

ProjectBuilderTags

Gets or sets the collection of builder tags associated with this project.

public List<ProjectBuilderTag> ProjectBuilderTags { get; set; }

Property Value

List<ProjectBuilderTag>
Represents a project in the Builvero platform that builders can join and collaborate on.

Remarks

Builder tags help categorize projects and match them with interested builders who have similar tags.

ProjectSkills

Gets or sets the collection of skills associated with this project.

public List<ProjectSkill> ProjectSkills { get; set; }

Property Value

List<ProjectSkill>
Represents a project in the Builvero platform that builders can join and collaborate on.

Remarks

Skills indicate the technical expertise required or used in this project, helping to match builders with relevant skills.

RichDescription

Gets or sets an optional rich description of the project, which may include formatted text or additional details.

public string? RichDescription { get; set; }

Property Value

string
Represents a project in the Builvero platform that builders can join and collaborate on.

ShortDescription

Gets or sets an optional short description of the project, suitable for previews or summaries.

public string? ShortDescription { get; set; }

Property Value

string
Represents a project in the Builvero platform that builders can join and collaborate on.

Status

Gets or sets the current status of the project, indicating its stage of development.

public ProjectStatus Status { get; set; }

Property Value

ProjectStatus
Represents a project in the Builvero platform that builders can join and collaborate on.

Tags

Gets or sets an optional comma-separated list of tags associated with the project.

public string? Tags { get; set; }

Property Value

string
Represents a project in the Builvero platform that builders can join and collaborate on.

Remarks

Tags are used for categorization and search purposes. They are stored as a single string with comma-separated values.

UpdatedAt

Gets or sets the UTC timestamp when the project was last updated.

public DateTime UpdatedAt { get; set; }

Property Value

DateTime
Represents a project in the Builvero platform that builders can join and collaborate on.