import { ApiProperty } from '@nestjs/swagger';
import { IsBoolean, IsInt, IsNotEmpty, IsOptional, IsString, Max, MaxLength, Min } from 'class-validator';

export class CreateMonedaDto {
  @ApiProperty({ example: 'USD', description: 'Código ISO 4217 de la moneda' })
  @IsNotEmpty()
  @IsString()
  @MaxLength(3)
  codigo: string;

  @ApiProperty({ example: '840', description: 'Código numérico ISO', required: false })
  @IsOptional()
  @IsString()
  @MaxLength(10)
  codigo_numerico?: string;

  @ApiProperty({ example: 'Dólar Estadounidense', description: 'Descripción de la moneda' })
  @IsNotEmpty()
  @IsString()
  @MaxLength(100)
  descripcion: string;

  @ApiProperty({ example: '$', description: 'Símbolo de la moneda', required: false })
  @IsOptional()
  @IsString()
  @MaxLength(10)
  simbolo?: string;

  @ApiProperty({ example: 2, description: 'Decimales estándar ISO', required: false })
  @IsOptional()
  @IsInt()
  @Min(0)
  @Max(6)
  decimales_estandar?: number;

  @ApiProperty({ example: 'L', description: 'Posición del símbolo (L=izquierda, R=derecha)', required: false })
  @IsOptional()
  @IsString()
  @MaxLength(1)
  posicion_simbolo?: string;

  @ApiProperty({ example: true, description: 'Estado activo', required: false })
  @IsOptional()
  @IsBoolean()
  active?: boolean;
}
