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

export class GenerateKudeDto {
  @ApiProperty({ description: 'ID de la factura o documento', example: 'uuid' })
  @IsUUID()
  documento_id: string;

  @ApiProperty({ description: 'Tipo de documento: 1=Factura, 4=Autofactura, 5=NC, 6=ND, 7=Remisión', example: 1 })
  @IsNumber()
  @IsIn([1, 4, 5, 6, 7])
  tipo_documento: number;

  @ApiPropertyOptional({ description: 'true para formato ticket térmico', example: false, default: false })
  @IsOptional()
  @IsBoolean()
  ticket?: boolean;

  @ApiPropertyOptional({ description: 'Tipo de retorno: view (PDF binario) o base64', example: 'view', default: 'view' })
  @IsOptional()
  @IsString()
  @IsIn(['view', 'base64'])
  tipo_retorno?: string;
}
