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

export class FilterInvoiceDto {
  @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: "Filter by client company id",
    example: 1,
  })
  @IsOptional()
  client_company_id?: number

  @ApiProperty({
    required: false,
    description: "Filter by client customer id",
    example: 1,
  })
  @IsOptional()
  customer_id?: number

  @ApiProperty({
    required: false,
    description: "Filter by status",
    example: 1,
  })
  @IsOptional()
  status?: string

  @ApiProperty({
    required: false,
    description: "Filter by city id",
    example: 1,
  })
  @IsOptional()
  @IsInt()
  city_id?: number
}
