import {
  IsString,
  IsOptional,
  IsUUID,
  IsNumber,
} from 'class-validator';

// ==================== Calibration Overview DTOs ====================

export class QueryCalibrationOverviewDto {
  @IsUUID()
  cycleId: string;
}

export class SaveCalibrationAdjustmentDto {
  @IsUUID()
  cycleId: string;

  @IsUUID()
  employeeId: string;

  @IsOptional()
  @IsString()
  calibratedGrade?: string;

  @IsOptional()
  @IsNumber()
  calibrationScore?: number;

  @IsOptional()
  @IsString()
  note?: string;
}

// ==================== Response DTOs ====================

export class GradeDistributionDto {
  cycleId: string;
  totalEmployees: number;
  distribution: {
    gradeCode: string;
    gradeName: string;
    count: number;
    percentage: number;
    color: string;
  }[];
}

export class AdjustmentLogResponseDto {
  id: string;
  resultId: string;
  previousGradeCode: string;
  newGradeCode: string;
  reason: string;
  adjustedBy: string;
  adjustedAt: Date;
}
