from dataclasses import dataclass from typing import Dict, Optional, Any @dataclass class BotType: name: str module: str config_key: str environment_variables: list[str] optional_environment_variables: list[str] def has_test_mode(self, body: Dict[str, Any]) -> bool: if self.config_key in body: return bool(body[self.config_key].get("testInPrebuilt")) return False call_transfer = BotType( name="call_transfer", module="call_transfer", config_key="call_transfer", environment_variables=["DAILY_API_KEY", "OPENAI_API_KEY", "CARTESIA_API_KEY"], optional_environment_variables=["DIAL_IN_FROM_NUMBER", "DIAL_OUT_TO_NUMBER", "OPERATOR_NUMBER"], ) simple_dialin = BotType( name="simple_dialin", module="simple_dialin", config_key="simple_dialin", environment_variables=["DAILY_API_KEY", "OPENAI_API_KEY", "CARTESIA_API_KEY"], optional_environment_variables=["DIAL_IN_FROM_NUMBER"], ) simple_dialout = BotType( name="simple_dialout", module="simple_dialout", config_key="simple_dialout", environment_variables=["DAILY_API_KEY", "OPENAI_API_KEY", "CARTESIA_API_KEY"], optional_environment_variables=["DIAL_OUT_TO_NUMBER"], ) voicemail_detection = BotType( name="voicemail_detection", module="voicemail_detection", config_key="voicemail_detection", environment_variables=["DAILY_API_KEY", "OPENAI_API_KEY", "DEEPGRAM_API_KEY", "CARTESIA_API_KEY"], optional_environment_variables=["DIAL_OUT_TO_NUMBER"], )