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

export class CrearInteresManualDto {
  @ApiPropertyOptional({
    example: 'cd88ac6a-2b0e-41bc-afd9-24b594cb8daf',
    description: 'Cuenta (factura) a la que va el interés. Se usa cuando no es de una cuota puntual.',
  })
  @IsUUID()
  @IsOptional()
  factura_cab_id?: string;

  @ApiPropertyOptional({
    example: 'cd88ac6a-2b0e-41bc-afd9-24b594cb8daf',
    description: 'Cuota puntual. Sin esto el interés es de la cuenta y se cobra en el próximo cobro.',
  })
  @IsUUID()
  @IsOptional()
  factura_cuota_id?: string;

  @ApiProperty({ example: 50000, description: 'Monto del interés, en la moneda de la factura' })
  @IsNumber()
  @IsPositive()
  monto: number;

  @ApiPropertyOptional({ example: 'Atraso acordado con el cliente' })
  @IsString()
  @IsOptional()
  @MaxLength(255)
  motivo?: string;
}

export class AnularInteresManualDto {
  @ApiPropertyOptional({ example: 'Cargado por error' })
  @IsString()
  @IsOptional()
  @MaxLength(255)
  motivo?: string;
}
