import { ApiPropertyOptional } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { IsInt, IsOptional, IsString, Max, Min } from 'class-validator';

/**
 * Query parameters for listing meeting summaries (the summary table).
 */
export class ListMeetingSummariesDto {
  @ApiPropertyOptional({ example: 1, default: 1, description: 'Page number.' })
  @IsOptional()
  @Type(() => Number)
  @IsInt()
  @Min(1)
  page?: number;

  @ApiPropertyOptional({
    example: 10,
    default: 10,
    description: 'Items per page. Max 100.',
  })
  @IsOptional()
  @Type(() => Number)
  @IsInt()
  @Min(1)
  @Max(100)
  limit?: number;

  @ApiPropertyOptional({
    example: 'tax',
    description: 'Free-text search over the summary title.',
  })
  @IsOptional()
  @IsString()
  search?: string;
}
