"""Backward-compat re-export shim for the task WS handlers.

The handlers were split (module modularization refactor) across tasks_validation
/ tasks_persist / tasks_crud / tasks_lifecycle / tasks_actions / tasks_history.
This shim keeps the historical `...websocket.tasks import X` import path stable
for the test suite, the websocket command registration, and the sibling
production modules. ``__all__`` makes the re-exports explicit for mypy --strict.
"""

from .tasks_actions import (
    ws_checklist_progress,
    ws_complete_task,
    ws_postpone_task,
    ws_quick_complete_task,
    ws_reset_task,
    ws_skip_task,
    ws_snooze_task,
)
from .tasks_crud import (
    async_delete_task,
    ws_create_task,
    ws_delete_task,
    ws_duplicate_task,
    ws_update_task,
)
from .tasks_history import ws_update_history_entry
from .tasks_lifecycle import (
    _is_recurring_schedule,
    ws_archive_task,
    ws_list_tasks,
    ws_task_history,
    ws_unarchive_task,
)
from .tasks_persist import (
    async_create_task_simple,
    async_persist_task,
)
from .tasks_validation import (
    _SAFE_URL_SCHEMES,
    _TRIGGER_ALLOWED_KEYS,
    _TRIGGER_REQUIRED_FIELDS,
    _VALID_TRIGGER_TYPES,
    _check_nfc_tag_duplicate,
    _is_safe_url,
    _validate_compound_trigger,
    _validate_trigger_config,
)

__all__ = [
    "_SAFE_URL_SCHEMES",
    "_TRIGGER_ALLOWED_KEYS",
    "_TRIGGER_REQUIRED_FIELDS",
    "_VALID_TRIGGER_TYPES",
    "_check_nfc_tag_duplicate",
    "_is_recurring_schedule",
    "_is_safe_url",
    "_validate_compound_trigger",
    "_validate_trigger_config",
    "async_create_task_simple",
    "async_delete_task",
    "async_persist_task",
    "ws_archive_task",
    "ws_checklist_progress",
    "ws_complete_task",
    "ws_create_task",
    "ws_delete_task",
    "ws_duplicate_task",
    "ws_list_tasks",
    "ws_postpone_task",
    "ws_quick_complete_task",
    "ws_reset_task",
    "ws_skip_task",
    "ws_snooze_task",
    "ws_task_history",
    "ws_unarchive_task",
    "ws_update_history_entry",
    "ws_update_task",
]
