import { IsOptional, IsString, IsUUID } from 'class-validator';

export class UploadFileDto {
  @IsOptional()
  @IsUUID()
  conversationId?: string;
}

export class FileResponseDto {
  id: string;
  originalName: string;
  mimeType: string;
  type: string;
  size: number;
  status: string;
  thumbnailUrl?: string;
  downloadUrl?: string;
  createdAt: Date;
}

export class PresignedUrlDto {
  @IsString()
  fileName: string;

  @IsString()
  mimeType: string;

  @IsOptional()
  @IsUUID()
  conversationId?: string;
}

export class PresignedUrlResponseDto {
  uploadUrl: string;
  fileId: string;
  objectName: string;
  expiresIn: number;
}
