import { ApiPropertyOptional } from '@nestjs/swagger';
import {
  IsOptional,
  IsString,
  MinLength,
  IsBoolean,
  IsNumber,
} from 'class-validator';

export class SearchLexwareContactsDto {
  @ApiPropertyOptional({ description: 'Suche nach Name (min 3 Zeichen)' })
  @IsOptional()
  @IsString()
  @MinLength(3)
  name?: string;

  @ApiPropertyOptional({ description: 'Suche nach E-Mail (min 3 Zeichen)' })
  @IsOptional()
  @IsString()
  @MinLength(3)
  email?: string;

  @ApiPropertyOptional({ description: 'Exakte Kunden-/Lieferantennummer' })
  @IsOptional()
  @IsNumber()
  number?: number;

  @ApiPropertyOptional({
    description: 'Nur Kunden anzeigen',
    default: true,
  })
  @IsOptional()
  @IsBoolean()
  customer?: boolean;

  @ApiPropertyOptional({ description: 'Nur Lieferanten anzeigen' })
  @IsOptional()
  @IsBoolean()
  vendor?: boolean;

  @ApiPropertyOptional({ description: 'Seite (0-basiert)', default: 0 })
  @IsOptional()
  @IsNumber()
  page?: number;

  @ApiPropertyOptional({ description: 'Seitengroesse', default: 25 })
  @IsOptional()
  @IsNumber()
  size?: number;
}
