Table of Contents

Class User

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

Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

public class User
Inheritance
User
Inherited Members

Remarks

The User entity is the central identity in the system. It supports multiple authentication methods (email/password, OAuth, or mixed) and maintains relationships to profile data, projects, skills, tags, and notifications. Users can own projects, be members of projects, send and receive invitations, and participate in forum discussions.

Properties

AuthMethod

Gets or sets the authentication method used by this user account.

public AuthMethod AuthMethod { get; set; }

Property Value

AuthMethod
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Remarks

Indicates whether the user authenticates via email/password, OAuth, or a combination of both (Mixed).

CreatedAt

Gets or sets the UTC timestamp when the user account was created.

public DateTime CreatedAt { get; set; }

Property Value

DateTime
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Educations

Gets or sets the collection of educational background entries associated with this user.

public List<Education> Educations { get; set; }

Property Value

List<Education>
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Email

Gets or sets the email address for the user account. May be null for OAuth-only accounts where the provider did not supply an email.

public string? Email { get; set; }

Property Value

string
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Remarks

Email addresses should be unique across the system. For OAuth accounts, this may be null if the provider does not provide an email.

Experiences

Gets or sets the collection of work experience entries associated with this user.

public List<Experience> Experiences { get; set; }

Property Value

List<Experience>
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

ForumUnsubscribeToken

Gets or sets the unique token used for unsubscribing from forum notifications via email.

public string ForumUnsubscribeToken { get; set; }

Property Value

string
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Remarks

This token is included in forum notification emails to allow users to unsubscribe without logging in.

Id

Gets or sets the unique identifier for the user.

public Guid Id { get; set; }

Property Value

Guid
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Invitation

Gets or sets the invitation entity that was used to register this user, if applicable.

public Invitation? Invitation { get; set; }

Property Value

Invitation
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

InvitationId

Gets or sets the identifier of the invitation code used during registration, if applicable.

public Guid? InvitationId { get; set; }

Property Value

Guid?
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Remarks

This links the user to the invitation that enabled their registration. Null for users who registered without an invitation.

LastLoginAt

Gets or sets the UTC timestamp of the user's last successful login, or null if the user has never logged in.

public DateTime? LastLoginAt { get; set; }

Property Value

DateTime?
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Notifications

Gets or sets the collection of notifications for this user.

public List<UserNotification> Notifications { get; set; }

Property Value

List<UserNotification>
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

OAuthAccounts

Gets or sets the collection of external OAuth accounts linked to this user.

public List<OAuthAccount> OAuthAccounts { get; set; }

Property Value

List<OAuthAccount>
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Remarks

A user may have multiple OAuth accounts from different providers (e.g., Google, LinkedIn).

OwnedProjects

Gets or sets the collection of projects owned by this user.

public List<Project> OwnedProjects { get; set; }

Property Value

List<Project>
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

PasswordHash

Gets or sets the hashed password for email/password authentication. Null for OAuth-only accounts.

public string? PasswordHash { get; set; }

Property Value

string
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Remarks

Passwords are hashed using BCrypt before storage. This field is null for users who authenticate exclusively via OAuth.

PrimaryCategory

Gets or sets the primary category classification for the user, indicating their main area of expertise or interest.

public UserCategory? PrimaryCategory { get; set; }

Property Value

UserCategory?
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Profile

Gets or sets the extended profile information for this user, including name, location, summary, and profile photo.

public UserProfile? Profile { get; set; }

Property Value

UserProfile
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Remarks

This is a one-to-one relationship. The profile may be null if the user has not completed their profile setup.

ProjectMemberships

Gets or sets the collection of project memberships for this user, indicating which projects they are members of and their roles.

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

Property Value

List<ProjectMembership>
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

ReceivedInvitations

Gets or sets the collection of project invitations received by this user from other users.

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

Property Value

List<ProjectInvitation>
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

ReceivedJoinRequests

Gets or sets the collection of project join requests received by this user as a project owner.

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

Property Value

List<ProjectJoinRequest>
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Role

Gets or sets the role assigned to the user, which determines their permissions and access level within the platform.

public UserRole Role { get; set; }

Property Value

UserRole
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

SentInvitations

Gets or sets the collection of project invitations sent by this user to other users.

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

Property Value

List<ProjectInvitation>
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

SentJoinRequests

Gets or sets the collection of project join requests sent by this user.

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

Property Value

List<ProjectJoinRequest>
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

Status

Gets or sets the current status of the user account, indicating whether the account is active, pending verification, disabled, or blocked.

public UserStatus Status { get; set; }

Property Value

UserStatus
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

UpdatedAt

Gets or sets the UTC timestamp when the user account was last updated.

public DateTime UpdatedAt { get; set; }

Property Value

DateTime
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

UserBuilderTags

Gets or sets the collection of builder tags associated with this user, indicating their areas of expertise or interest.

public List<UserBuilderTag> UserBuilderTags { get; set; }

Property Value

List<UserBuilderTag>
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.

UserSkills

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

public List<UserSkill> UserSkills { get; set; }

Property Value

List<UserSkill>
Represents a user account in the Builvero platform with authentication credentials, profile information, and relationships to projects and other entities.