import { ApiProperty } from "@nestjs/swagger"
import { IsOptional, IsInt } from "class-validator"

export class FilterPaymentDto {
  @ApiProperty({
    required: false,
    default: 10,
    description: "Number of records per page",
    example: 10,
  })
  @IsOptional()
  @IsInt()
  limit?: number

  @ApiProperty({
    required: false,
    default: 0,
    description: "Number of records to skip",
    example: 0,
  })
  @IsOptional()
  @IsInt()
  skip?: number

  @ApiProperty({
    required: false,
    description: "Search filters: name, email, phone_number, etc.",
    example: "John",
  })
  @IsOptional()
  search?: string

  @ApiProperty({
    required: false,
    description: "Invoice ID",
    example: 1,
  })
  @IsOptional()
  @IsInt()
  invoice_id?: string

  @ApiProperty({
    required: false,
    description: "Client ID",
    example: 1,
  })
  @IsOptional()
  @IsInt()
  client_id?: string

  @ApiProperty({
    required: false,
    description: "Payment method",
    example: "cash",
  })
  @IsOptional()
  payment_method?: string

  @ApiProperty({
    required: false,
    description: "Payment status",
    example: "paid",
  })
  @IsOptional()
  status?: string
}
