import { IsDateString, IsNumber, IsOptional } from "class-validator";
import { ApiPropertyOptional } from "@nestjs/swagger";

export class UpdatePerformanceDto {
  @ApiPropertyOptional({ description: "Reps (Weight & Reps, Reps Only, Assisted BW, Weighted BW)" })
  @IsOptional()
  @IsNumber()
  reps?: number;

  @ApiPropertyOptional({ description: "Weight in kg (Weight & Reps)" })
  @IsOptional()
  @IsNumber()
  weight?: number;

  @ApiPropertyOptional({ description: "Duration in seconds (Time/Hold, Distance & Time)" })
  @IsOptional()
  @IsNumber()
  duration?: number;

  @ApiPropertyOptional({ description: "Distance in km (Distance & Time)" })
  @IsOptional()
  @IsNumber()
  distance?: number;

  @ApiPropertyOptional({ description: "Assistance in kg — negative value (Assisted Bodyweight)" })
  @IsOptional()
  @IsNumber()
  assisted_weight?: number;

  @ApiPropertyOptional({ description: "Added load in kg — positive value (Weighted Bodyweight)" })
  @IsOptional()
  @IsNumber()
  added_weight?: number;

  @ApiPropertyOptional({ example: "2025-06-18", description: "New date for this entry" })
  @IsOptional()
  @IsDateString()
  date?: string;
}
