Class UpdateProfileRequest
- Namespace
- Builvero.Application.DTOs.Profile
- Assembly
- Builvero.Application.dll
Request model for updating a user's profile information.
public class UpdateProfileRequest
- Inheritance
-
UpdateProfileRequest
- Inherited Members
Remarks
This DTO supports partial updates with the following semantics:
- Scalar fields (FullName, City, Country, Summary, etc.): Always updated if provided
- Collection fields (SkillIds, Educations, Experiences, BuilderTagIds):
- If null (omitted from JSON): Preserves existing values
- If empty array ([]): Clears all existing values
- If populated array: Replaces all existing values with the provided list
Profile photo URL can be an S3 object key or external URL. If provided, it replaces the existing photo.
Properties
BuilderTagIds
Gets or sets the list of builder tag identifiers to associate with the user's profile.
public List<Guid>? BuilderTagIds { get; set; }
Property Value
Remarks
Partial update semantics:
- If null (omitted from JSON): Preserves existing builder tags
- If empty array ([]): Clears all existing builder tags
- If populated array: Replaces all existing builder tags with the provided list
All provided tag IDs must exist when the collection is provided.
Category
Gets or sets the primary category classification for the user as a string (e.g., "SoftwareEngineer", "Designer").
public string? Category { get; set; }
Property Value
- string
- Request model for updating a user's profile information.
Remarks
This is the string representation of the UserCategory enum.
City
Gets or sets the city where the user is located.
public string City { get; set; }
Property Value
- string
- Request model for updating a user's profile information.
Remarks
This is a required field and should not be empty.
Country
Gets or sets the country where the user is located.
public string Country { get; set; }
Property Value
- string
- Request model for updating a user's profile information.
Remarks
This is a required field and should not be empty.
Educations
Gets or sets the list of education entries for the user's profile.
public List<EducationDto>? Educations { get; set; }
Property Value
- List<EducationDto>
- Request model for updating a user's profile information.
Remarks
Partial update semantics:
- If null (omitted from JSON): Preserves existing educations
- If empty array ([]): Clears all existing educations
- If populated array: Replaces all existing educations with the provided list. Entries with existing IDs are updated, entries without IDs are created.
Experiences
Gets or sets the list of work experience entries for the user's profile.
public List<ExperienceDto>? Experiences { get; set; }
Property Value
- List<ExperienceDto>
- Request model for updating a user's profile information.
Remarks
Partial update semantics:
- If null (omitted from JSON): Preserves existing experiences
- If empty array ([]): Clears all existing experiences
- If populated array: Replaces all existing experiences with the provided list. Entries with existing IDs are updated, entries without IDs are created.
FullName
Gets or sets the full name of the user as displayed on their profile.
public string FullName { get; set; }
Property Value
- string
- Request model for updating a user's profile information.
Remarks
This is a required field and should not be empty.
PhoneNumber
Gets or sets an optional phone number for the user.
public string? PhoneNumber { get; set; }
Property Value
- string
- Request model for updating a user's profile information.
ProfilePhotoUrl
Gets or sets the profile photo URL or S3 object key.
public string? ProfilePhotoUrl { get; set; }
Property Value
- string
- Request model for updating a user's profile information.
Remarks
This field can contain:
- An external URL (e.g., https://example.com/photo.jpg) - returned as-is
- An S3 object key (e.g., profile-photos/{userId}/{fileId}.jpg) - converted to presigned URL
If this field is provided, it replaces the existing profile photo. If null or empty, the existing photo is preserved.
SkillIds
Gets or sets the list of skill identifiers to associate with the user's profile.
public List<Guid>? SkillIds { get; set; }
Property Value
Remarks
Partial update semantics:
- If null (omitted from JSON): Preserves existing skills
- If empty array ([]): Clears all existing skills
- If populated array: Replaces all existing skills with the provided list
All provided skill IDs must exist and be active when the collection is provided.
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
- Request model for updating a user's profile information.