import { ApiPropertyOptional } from '@nestjs/swagger';
import { IsIn, IsOptional, IsString, IsUUID } from 'class-validator';

export class QueryOrdenesVentaDto {
  @ApiPropertyOptional({ description: 'Filtrar por estado' })
  @IsOptional()
  @IsIn(['borrador', 'confirmada', 'aprobada', 'en_proceso', 'facturada_parcial', 'facturada', 'cancelada', 'vencida'])
  estado_orden?: string;

  @ApiPropertyOptional({ description: 'Filtrar por cliente' })
  @IsOptional()
  @IsUUID()
  cliente_id?: string;

  @ApiPropertyOptional({ description: 'Filtrar por vendedor' })
  @IsOptional()
  @IsUUID()
  vendedor_id?: string;

  @ApiPropertyOptional({ description: 'Filtrar por sucursal' })
  @IsOptional()
  @IsUUID()
  sucursal_id?: string;

  @ApiPropertyOptional({ description: 'Fecha desde (YYYY-MM-DD)' })
  @IsOptional()
  @IsString()
  fecha_desde?: string;

  @ApiPropertyOptional({ description: 'Fecha hasta (YYYY-MM-DD)' })
  @IsOptional()
  @IsString()
  fecha_hasta?: string;

  @ApiPropertyOptional({ description: 'Número de página', default: '1' })
  @IsOptional()
  @IsString()
  page?: string;

  @ApiPropertyOptional({ description: 'Registros por página', default: '20' })
  @IsOptional()
  @IsString()
  limit?: string;
}
