import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { IsIn, IsOptional, IsString } from 'class-validator';

/**
 * 手术资料 DTO：用于术前 CT 影像/视频等附件元数据。
 */
export class SurgeryMaterialDto {
  @ApiProperty({
    description: '资料类型',
    enum: ['IMAGE', 'VIDEO', 'FILE'],
    example: 'IMAGE',
  })
  @IsIn(['IMAGE', 'VIDEO', 'FILE'], {
    message: 'type 必须是 IMAGE、VIDEO 或 FILE',
  })
  type!: 'IMAGE' | 'VIDEO' | 'FILE';

  @ApiProperty({
    description: '资料访问地址',
    example: 'https://cdn.example.com/patients/ct-001.png',
  })
  @IsString({ message: 'url 必须是字符串' })
  url!: string;

  @ApiPropertyOptional({
    description: '资料名称',
    example: '术前 CT 第 1 张',
  })
  @IsOptional()
  @IsString({ message: 'name 必须是字符串' })
  name?: string;
}
