"""
Configuration models for AppCrawler.
These dataclasses define the configuration structure for the AppCrawler service.
"""
from __future__ import annotations
from dataclasses import dataclass, field
from typing import Any, Dict, Optional
@dataclass
class AzureConfig:
"""Configuration for the Azure OpenAI client."""
api_key: str
azure_endpoint: str
api_version: str = "2024-12-01-preview"
@dataclass
class AppiumConfig:
"""Configuration for connecting to the Appium server."""
desired_capabilities: Dict[str, Any] = field(default_factory=dict)
server_url: str = "http://127.0.0.1:4723"
@dataclass
class CrawlerSettings:
"""Top-level configuration for the ``AppCrawler`` service."""
appium: AppiumConfig
azure: AzureConfig
output_dir: str
platform: str = "android"
wait_time: int = 10
test_example: Optional[str] = None