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

export class CrearCuotaIndividualDto {
  @ApiProperty({ description: 'ID del producto' })
  @IsUUID()
  productoId: string;

  @ApiProperty({ description: 'ID del plan de cuotas' })
  @IsUUID()
  planCuotaId: string;

  @ApiProperty({ description: 'Monto de cada cuota' })
  @IsNumber()
  @Min(0)
  montoCuota: number;

  @ApiProperty({ description: 'Cantidad de cuotas' })
  @IsNumber()
  @Min(1)
  cantidadCuotas: number;

  @ApiPropertyOptional({ description: 'Monto de cuota inicial (entrada)' })
  @IsOptional()
  @IsNumber()
  @Min(0)
  cuotaInicial?: number;

  @ApiPropertyOptional({ description: 'Estado activo', default: true })
  @IsOptional()
  @IsBoolean()
  activo?: boolean;
}

export class ActualizarCuotaIndividualDto {
  @ApiPropertyOptional({ description: 'Monto de cada cuota' })
  @IsOptional()
  @IsNumber()
  @Min(0)
  montoCuota?: number;

  @ApiPropertyOptional({ description: 'Cantidad de cuotas' })
  @IsOptional()
  @IsNumber()
  @Min(1)
  cantidadCuotas?: number;

  @ApiPropertyOptional({ description: 'Monto de cuota inicial (entrada)' })
  @IsOptional()
  @IsNumber()
  @Min(0)
  cuotaInicial?: number;

  @ApiPropertyOptional({ description: 'Estado activo' })
  @IsOptional()
  @IsBoolean()
  activo?: boolean;
}
