import { IsEnum, IsString, MinLength, MaxLength } from 'class-validator';
import { ChangeRequestStatus } from '../../../entities/booking-change-request.entity';

/** Narrowed enum — callers pass only a decision state, not pending. */
export enum ChangeRequestDecision {
  APPROVED = ChangeRequestStatus.APPROVED,
  REJECTED = ChangeRequestStatus.REJECTED,
  ON_HOLD = ChangeRequestStatus.ON_HOLD,
}

export class DecideChangeRequestDto {
  @IsEnum(ChangeRequestDecision)
  decision: ChangeRequestDecision;

  @IsString()
  @MinLength(20, { message: 'Decision remarks must be at least 20 characters.' })
  @MaxLength(2000)
  decision_remarks: string;
}
