from dataclasses import dataclass
from enum import Enum
from pathlib import Path


@dataclass
class FileUploadDto:
    taskId: str
    path: Path
    uploadUrl: str

@dataclass
class FileListDto:
    taskId: str
    path: Path
    datatypes: list[str] = None
    recursive: bool = False

@dataclass
class FileUpgradeDto:
    taskId: str
    downloadUrl: str
    filename: str
    checksum: str
    checksumType: str
    expireDate: str
    version: str
    destinationPath: Path

class TransferStatus(str, Enum):
    IDLE = "idle"
    TRANSFERRING = "transferring"
    COMPLETED = "completed"
    FAILED = "failed"
