import { ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { IsInt, IsOptional, IsString, MaxLength, Min } from 'class-validator';

/**
 * 取消任务 DTO。
 */
export class CancelTaskDto {
  @ApiProperty({ description: '任务 ID', example: 1 })
  @Type(() => Number)
  @IsInt({ message: 'taskId 必须是整数' })
  @Min(1, { message: 'taskId 必须大于 0' })
  taskId!: number;

  @ApiProperty({
    description: '取消原因（可选，当前仅用于接口兼容与后续通知扩展）',
    example: '后台手动取消',
    required: false,
  })
  @IsOptional()
  @IsString({ message: 'reason 必须是字符串' })
  @MaxLength(100, { message: 'reason 长度不能超过 100 个字符' })
  reason?: string;
}
