Table of Contents

Class SearchProjectsRequest

Namespace
Builvero.Application.DTOs.Project
Assembly
Builvero.Application.dll

Request model for searching and filtering projects with pagination.

public class SearchProjectsRequest
Inheritance
SearchProjectsRequest
Inherited Members

Remarks

This DTO supports two search modes:

  • Advanced search: Used when Skills or Status filters are provided
  • Legacy search: Used for backward compatibility when only basic filters are provided
Search is case-insensitive and matches project names and descriptions.

Properties

BuilderTagId

Gets or sets the builder tag identifier to filter projects by builder tag (legacy field).

public Guid? BuilderTagId { get; set; }

Property Value

Guid?
Request model for searching and filtering projects with pagination.

Remarks

This field is used for backward compatibility in legacy search mode.

Category

Gets or sets the project category filter as a string (e.g., "Software", "Hardware", "Design").

public string? Category { get; set; }

Property Value

string
Request model for searching and filtering projects with pagination.

Remarks

Must match a valid ProjectCategory enum value. Invalid values are ignored.

ExperienceLevel

Gets or sets the preferred experience level filter (legacy field).

public string? ExperienceLevel { get; set; }

Property Value

string
Request model for searching and filtering projects with pagination.

Remarks

This field is used for backward compatibility in legacy search mode.

Page

Gets or sets the page number for pagination (1-based).

public int Page { get; set; }

Property Value

int
Request model for searching and filtering projects with pagination.

Remarks

Defaults to 1 if not specified.

PageSize

Gets or sets the number of projects per page.

public int PageSize { get; set; }

Property Value

int
Request model for searching and filtering projects with pagination.

Remarks

Defaults to 20 if not specified.

SearchTerm

Gets or sets the search term for filtering projects by name or description (legacy field).

public string? SearchTerm { get; set; }

Property Value

string
Request model for searching and filtering projects with pagination.

Remarks

This field is used for backward compatibility. If Text is also provided, Text takes precedence.

Skills

Gets or sets the list of skill identifiers to filter projects by required skills.

public List<Guid>? Skills { get; set; }

Property Value

List<Guid>
Request model for searching and filtering projects with pagination.

Remarks

When provided, triggers advanced search mode. Projects must have at least one of the specified skills.

Status

Gets or sets the project status filter as a string (e.g., "Idea", "InProgress", "Completed").

public string? Status { get; set; }

Property Value

string
Request model for searching and filtering projects with pagination.

Remarks

Must match a valid ProjectStatus enum value. Invalid values are ignored. When provided, triggers advanced search mode.

Text

Gets or sets the search term for filtering projects by name or description (preferred field).

public string? Text { get; set; }

Property Value

string
Request model for searching and filtering projects with pagination.

Remarks

If both SearchTerm and Text are provided, this field takes precedence.