"""Domain-specific exceptions for the Ross1000 export pipeline."""

from __future__ import annotations


class Ross1000ValidationError(Exception):
    """Raised when source data cannot produce a valid Ross1000 XML payload.

    This is the canonical domain exception for the Ross1000 module.
    Callers should catch this to return HTTP 400 responses.
    """


class Ross1000SerializationError(Exception):
    """Raised when XML/SOAP serialization fails for validated Ross1000 payloads."""


class Ross1000StructureError(Ross1000ValidationError):
    """Raised when the structure is missing required Ross1000 fields."""


class Ross1000GuestError(Ross1000ValidationError):
    """Raised when a guest record is missing required Ross1000 fields."""
