Table of Contents

Class UserProfile

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

Represents extended profile information for a user, including personal details, location, summary, and profile photo.

public class UserProfile
Inheritance
UserProfile
Inherited Members

Remarks

This entity has a one-to-one relationship with User. The profile is optional and may be created or updated as the user completes their profile setup. The profile photo can be stored either as an external URL (legacy) or as an S3 object key (preferred).

Properties

City

Gets or sets the city where the user is located.

public string City { get; set; }

Property Value

string
Represents extended profile information for a user, including personal details, location, summary, and profile photo.

Country

Gets or sets the country where the user is located.

public string Country { get; set; }

Property Value

string
Represents extended profile information for a user, including personal details, location, summary, and profile photo.

FullName

Gets or sets the full name of the user as displayed on their profile.

public string FullName { get; set; }

Property Value

string
Represents extended profile information for a user, including personal details, location, summary, and profile photo.

Remarks

This is a required field and should not be empty. It is used for display purposes throughout the platform.

IsProfileComplete

Gets or sets a value indicating whether the user has completed their profile setup with all required information.

public bool IsProfileComplete { get; set; }

Property Value

bool
Represents extended profile information for a user, including personal details, location, summary, and profile photo.

Remarks

This flag is used to track profile completion status and may affect user experience features such as project recommendations or search visibility.

PhoneNumber

Gets or sets an optional phone number for the user.

public string? PhoneNumber { get; set; }

Property Value

string
Represents extended profile information for a user, including personal details, location, summary, and profile photo.

ProfilePhotoS3Key

Gets or sets the S3 object key for the user's profile photo (e.g., profile-photos/user-id/photo.jpg).

public string? ProfilePhotoS3Key { get; set; }

Property Value

string
Represents extended profile information for a user, including personal details, location, summary, and profile photo.

Remarks

This is the preferred method for storing profile photos. The object key is used to generate presigned URLs for secure access to the photo stored in S3. If both this and ProfilePhotoUrl are set, ProfilePhotoUrl takes precedence if it is an external URL.

ProfilePhotoUrl

Gets or sets the legacy external URL for the user's profile photo (e.g., https://example.com/photo.jpg).

public string? ProfilePhotoUrl { get; set; }

Property Value

string
Represents extended profile information for a user, including personal details, location, summary, and profile photo.

Remarks

This is a legacy field for profile photos stored externally. If this is set and is an external URL (not S3), it takes precedence over ProfilePhotoS3Key. For new uploads, prefer using S3 storage via ProfilePhotoS3Key.

Summary

Gets or sets an optional summary or bio describing the user's background, interests, or expertise.

public string? Summary { get; set; }

Property Value

string
Represents extended profile information for a user, including personal details, location, summary, and profile photo.

User

Gets or sets the user entity this profile belongs to.

public User User { get; set; }

Property Value

User
Represents extended profile information for a user, including personal details, location, summary, and profile photo.

UserId

Gets or sets the unique identifier of the user this profile belongs to. This serves as both the primary key and foreign key to User.

public Guid UserId { get; set; }

Property Value

Guid
Represents extended profile information for a user, including personal details, location, summary, and profile photo.