"""DMS-specific exception types."""

from __future__ import annotations


class DMSError(Exception):
    """Base DMS domain error."""


class AssetNotFound(DMSError):
    """Raised when a requested file asset does not exist or is inaccessible."""


class AssetNotReady(DMSError):
    """Raised when accessing an asset that is not in READY upload state."""


class UploadSessionError(DMSError):
    """Raised for invalid upload session operations."""


class ChunkError(DMSError):
    """Raised for problems reading or writing chunk data."""


class FileTooLarge(DMSError):
    """File size exceeds the configured limit."""


class ContentTypeNotAllowed(DMSError):
    """MIME type is not permitted by DMS configuration."""
