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

export class FilterTemplateFormSectionDto {
  @ApiProperty({ description: 'Number of records to return', required: false, default: 10 })
  @IsOptional()
  @Type(() => Number)
  @IsInt()
  @Min(1)
  limit?: number = 10;

  @ApiProperty({ description: 'Number of records to skip', required: false, default: 0 })
  @IsOptional()
  @Type(() => Number)
  @IsInt()
  @Min(0)
  offset?: number = 0;

  @ApiProperty({ description: 'Search text for section name', required: false })
  @IsOptional()
  @IsString()
  searchText?: string;

  @ApiProperty({ description: 'Filter by program template ID', required: false })
  @IsOptional()
  @Type(() => Number)
  @IsInt()
  programTemplateId?: number;

  @ApiProperty({ description: 'Filter by parent section ID', required: false })
  @IsOptional()
  @Type(() => Number)
  @IsInt()
  parentSectionId?: number;

  @ApiProperty({ description: 'Filter by master form section ID', required: false })
  @IsOptional()
  @Type(() => Number)
  @IsInt()
  masterFormSectionId?: number;
}
