Class UserProfile
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.