Table of Contents

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

List<Guid>
Request model for updating a user's profile information.

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

List<Guid>
Request model for updating a user's profile information.

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.