"""DHL shipping integration service (MVP).

This module exposes a small, provider-agnostic helper used by:

- ``routers/dhl_admin.py``   — admin credential management & shipment creation.
- ``routers/dhl_public.py``  — customer-facing tracking lookup.

Design goals for the MVP:

- Reuse the existing encrypted credential store (``api_hub_credentials``) so
  DHL secrets are never persisted in plain text.
- Stay fully functional even when credentials are missing / invalid: fall back
  to a deterministic **stub mode** that returns a simulated tracking number
  and a progressive set of tracking events. This keeps demos, tests and local
  development usable without a real DHL contract, while the same public
  surface will hit the real DHL API once credentials are configured.
- Keep network code isolated in ``client.py`` so the rest of the backend can
  pull ``create_shipment_for_order`` / ``get_tracking`` without caring which
  mode is active.
"""

from services.dhl.client import (
    DHL_PROVIDER_ID,
    DhlError,
    DhlSettings,
    create_shipment_for_order,
    delete_settings,
    get_settings,
    get_tracking,
    save_settings,
    test_connection,
)
from services.dhl.notifications import (
    list_notifications,
    notify_if_status_changed,
)

__all__ = [
    "DHL_PROVIDER_ID",
    "DhlError",
    "DhlSettings",
    "create_shipment_for_order",
    "delete_settings",
    "get_settings",
    "get_tracking",
    "list_notifications",
    "notify_if_status_changed",
    "save_settings",
    "test_connection",
]