from typing import Optional from storage.directus import DirectusClient def resolve_contact_name(phone_number: Optional[str]) -> Optional[str]: if not phone_number: return None try: dc = DirectusClient() if dc.is_available(): contact = dc.find_contact(phone_number) dc.close() if contact: name = contact.get("name") or "" company = contact.get("company") or "" parts = [p for p in [name, f"({company})" if company else ""] if p] return " ".join(parts) except Exception: pass return None def resolve_contacts(caller_number: Optional[str], callee_number: Optional[str]) -> dict: result = {} try: dc = DirectusClient() if dc.is_available(): if caller_number: contact = dc.find_contact(caller_number) if contact: result["caller_name"] = contact.get("name", "") result["caller_company"] = contact.get("company", "") if callee_number: contact = dc.find_contact(callee_number) if contact: result["callee_name"] = contact.get("name", "") result["callee_company"] = contact.get("company", "") dc.close() except Exception: pass return result