File

apps/recallassess/recallassess-api/src/api/client/participant/dto/participant-query.dto.ts

Description

Query DTO for filtering participants Matches the frontend search/filter model Extends CLPaginationOptions for pagination support (page, limit)

Index

Properties

Properties

Optional participantGroup
Type : string
Decorators :
@Expose()
@ApiPropertyOptional({description: 'Filter by participant group', example: 'Sales'})
@IsOptional()
@IsString()
Optional sq
Type : string
Decorators :
@Expose()
@ApiPropertyOptional({description: 'Search query to filter by name, email, or participant group', example: 'john'})
@IsOptional()
@IsString()
Optional status
Type : string
Decorators :
@Expose()
@ApiPropertyOptional({description: 'Filter by status', example: 'active', enum: undefined})
@IsOptional()
@IsString()
import { CLPaginationOptions } from "@api/shared/dto";
import { ApiPropertyOptional } from "@nestjs/swagger";
import { IsOptional, IsString } from "class-validator";
import { Exclude, Expose } from "class-transformer";

/**
 * Query DTO for filtering participants
 * Matches the frontend search/filter model
 * Extends CLPaginationOptions for pagination support (page, limit)
 */
@Exclude()
export class ParticipantQueryDto extends CLPaginationOptions {
  @Expose()
  @ApiPropertyOptional({
    description: "Search query to filter by name, email, or participant group",
    example: "john",
  })
  @IsOptional()
  @IsString()
  sq?: string;

  @Expose()
  @ApiPropertyOptional({
    description: "Filter by status",
    example: "active",
    enum: ["all", "active", "inactive", "pending"],
  })
  @IsOptional()
  @IsString()
  status?: string;

  @Expose()
  @ApiPropertyOptional({
    description: "Filter by participant group",
    example: "Sales",
  })
  @IsOptional()
  @IsString()
  participantGroup?: string;
}

results matching ""

    No results matching ""