Class CreateProjectRequest
- Namespace
- Builvero.Application.DTOs.Project
- Assembly
- Builvero.Application.dll
Request model for creating a new project.
public class CreateProjectRequest
- Inheritance
-
CreateProjectRequest
- Inherited Members
Remarks
This DTO is used by the project creation endpoint. The creating user becomes the project owner. Category must match a valid ProjectCategory enum value. Status is optional and defaults to "Idea" if not provided or invalid.
Properties
BuilderTagIds
Gets or sets the list of builder tag identifiers to associate with the project.
public List<Guid> BuilderTagIds { get; set; }
Property Value
Remarks
All provided tag IDs must exist. Empty list is allowed.
Category
Gets or sets the project category as a string (e.g., "Software", "Hardware", "Design").
public string Category { get; set; }
Property Value
- string
- Request model for creating a new project.
Remarks
This is a required field and must match a valid ProjectCategory enum value.
Description
Gets or sets the main description of the project.
[Required(ErrorMessage = "Project description is required")]
[StringLength(500, ErrorMessage = "Project description cannot exceed 500 characters")]
public string Description { get; set; }
Property Value
- string
- Request model for creating a new project.
Remarks
This is a required field and should not be empty. Maximum length is 500 characters.
Name
Gets or sets the name of the project.
[Required(ErrorMessage = "Project name is required")]
[StringLength(100, ErrorMessage = "Project name cannot exceed 100 characters")]
public string Name { get; set; }
Property Value
- string
- Request model for creating a new project.
Remarks
This is a required field and should not be empty. Maximum length is 100 characters.
PreferredExperienceLevel
Gets or sets the preferred experience level for project members (e.g., "Beginner", "Intermediate", "Expert").
public string? PreferredExperienceLevel { get; set; }
Property Value
- string
- Request model for creating a new project.
Remarks
Optional field. Used for matching builders with appropriate skill levels.
RichDescription
Gets or sets an optional rich description of the project, which may include formatted text or additional details.
public string? RichDescription { get; set; }
Property Value
- string
- Request model for creating a new project.
ShortDescription
Gets or sets an optional short description of the project, suitable for previews or summaries.
[StringLength(500, ErrorMessage = "Short description cannot exceed 500 characters")]
public string? ShortDescription { get; set; }
Property Value
- string
- Request model for creating a new project.
Remarks
Maximum length is 500 characters.
SkillIds
Gets or sets the list of skill identifiers to associate with the project.
public List<Guid> SkillIds { get; set; }
Property Value
Remarks
All provided skill IDs must exist and be active. Empty list is allowed.
Status
Gets or sets the project status as a string (e.g., "Idea", "InProgress", "Completed").
public string? Status { get; set; }
Property Value
- string
- Request model for creating a new project.
Remarks
Optional field. Must match a valid ProjectStatus enum value. If not provided or invalid, defaults to "Idea".
Tags
Gets or sets optional tags or keywords associated with the project.
public string? Tags { get; set; }
Property Value
- string
- Request model for creating a new project.
Remarks
Optional field. Can be used for additional categorization or search keywords.