"""``databases.*`` — thin convenience wrapper around the sites-level DB calls. The underlying remote methods live under ``sites_database_*`` in ISPConfig, but callers reasonably expect a top-level ``client.databases`` namespace. This module just delegates to :class:`~ispconfig.sites.SitesModule`. """ from __future__ import annotations from collections.abc import Mapping from typing import TYPE_CHECKING, Any from .types import Database, DatabaseUser if TYPE_CHECKING: from .client import ISPConfigClient class DatabasesModule: def __init__(self, client: ISPConfigClient) -> None: self._c = client def get(self, primary_id: int) -> Database: return self._c.sites.database_get(primary_id) def add(self, client_id: int, params: Mapping[str, Any]) -> int: return self._c.sites.database_add(client_id, params) def delete(self, primary_id: int) -> int: return self._c.sites.database_delete(primary_id) def user_get(self, primary_id: int) -> DatabaseUser: return self._c.sites.database_user_get(primary_id) def user_add(self, client_id: int, params: Mapping[str, Any]) -> int: return self._c.sites.database_user_add(client_id, params) def user_update(self, client_id: int, primary_id: int, params: Mapping[str, Any]) -> int: return self._c.sites.database_user_update(client_id, primary_id, params)