import { IsEnum, IsDateString, IsOptional, IsString } from 'class-validator';
import { LeaveType } from 'common/enums/leaves.enum';
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';

export class CreateLeaveRequestDto {
  @ApiProperty({ enum: LeaveType, example: LeaveType.ANNUAL })
  @IsEnum(LeaveType)
  leaveType: LeaveType;

  @ApiProperty({ example: '2026-05-01', description: 'Start date of the leave' })
  @IsDateString()
  startDate: Date;

  @ApiProperty({ example: '2026-05-10', description: 'End date of the leave' })
  @IsDateString()
  endDate: Date;

  @ApiPropertyOptional({ example: 'Family vacation to Europe', description: 'Reason for requesting leave' })
  @IsOptional()
  @IsString()
  reason?: string;
}