from pydantic import BaseModel from typing import Optional, List from datetime import datetime class AttachmentVersionResponse(BaseModel): id: str version: int file_size: int checksum: str uploaded_by: Optional[str] = None uploader_name: Optional[str] = None created_at: datetime class Config: from_attributes = True class AttachmentResponse(BaseModel): id: str task_id: str filename: str original_filename: str mime_type: str file_size: int current_version: int is_encrypted: bool uploaded_by: Optional[str] = None uploader_name: Optional[str] = None created_at: datetime updated_at: datetime class Config: from_attributes = True class AttachmentListResponse(BaseModel): attachments: List[AttachmentResponse] total: int class AttachmentDetailResponse(AttachmentResponse): versions: List[AttachmentVersionResponse] = [] class VersionHistoryResponse(BaseModel): attachment_id: str filename: str versions: List[AttachmentVersionResponse] total: int