import { IsDateString, IsEnum, IsNumber, IsOptional, IsString, Min } from "class-validator";

export enum ReservationStatusEnum {
  PENDING = "PENDING",
  CONFIRMED = "CONFIRMED",
  CONVERTED = "CONVERTED",
  EXPIRED = "EXPIRED",
  CANCELED = "CANCELED",
}

export class CreateReservationDto {
  @IsString()
  customerId!: string;

  @IsString()
  equipmentId!: string;

  @IsDateString()
  startDate!: string;

  @IsDateString()
  endDate!: string;

  @IsOptional()
  @IsNumber()
  @Min(0)
  depositAmount?: number;

  @IsOptional()
  @IsDateString()
  validUntil?: string;

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

  @IsOptional()
  @IsEnum(ReservationStatusEnum)
  status?: ReservationStatusEnum;
}
