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

export class UpdateConsumoFuncionarioConfigDto {
  @ApiPropertyOptional({ description: 'Propone en la liquidación las facturas pendientes de cada funcionario' })
  @IsOptional()
  @IsBoolean()
  habilitado?: boolean;

  @ApiPropertyOptional({ description: 'Crear la ficha de cliente al dar de alta un funcionario' })
  @IsOptional()
  @IsBoolean()
  crear_cliente?: boolean;

  @ApiPropertyOptional({ description: 'Tope mensual a descontar por funcionario. 0 = sin tope', example: 500000 })
  @IsOptional()
  @Type(() => Number)
  @IsNumber({ maxDecimalPlaces: 2 })
  @Min(0)
  tope_mensual?: number;
}

export class VincularFichasDto {
  @ApiPropertyOptional({
    description: 'Crear ficha nueva para los funcionarios que todavía no son clientes',
    default: false,
  })
  @IsOptional()
  @IsBoolean()
  crear?: boolean;
}

export class CambiarExclusionDto {
  @ApiProperty({ description: 'true = no proponerla como descuento por planilla' })
  @IsBoolean()
  excluir!: boolean;
}
