import logging from yuxi.channel.extensions.freshdesk.types import FreshdeskAccount, FreshdeskMode logger = logging.getLogger(__name__) class FreshdeskStatus: async def probe(self, account: FreshdeskAccount | None = None, client=None) -> bool: if account is None or client is None: return False try: if account.mode in (FreshdeskMode.FRESHCHAT, FreshdeskMode.BOTH): me = await client.fc_get_me() if not me.get("id"): return False if account.mode in (FreshdeskMode.FRESHDESK, FreshdeskMode.BOTH): me = await client.fd_get_me() if not me.get("id"): return False return True except Exception: logger.exception("Freshdesk status probe failed") return False def build_summary(self, snapshot: object) -> dict: return { "freshchat_account": getattr(snapshot, "freshchat_account_name", ""), "freshdesk_agent": getattr(snapshot, "freshdesk_agent_name", ""), }