from datetime import datetime from typing import List, Optional from pydantic import BaseModel class ExternalApiLogResponse(BaseModel): id: int direction: str target_type: str target_id: Optional[int] = None target_name: Optional[str] = None method: str path: str url_host: str status_code: Optional[int] = None success: bool duration_ms: int error_type: Optional[str] = None error_message: Optional[str] = None created_at: datetime model_config = {"from_attributes": True} class ExternalApiLogSummaryItem(BaseModel): direction: str target_type: str target_id: Optional[int] = None target_name: Optional[str] = None method: str path: str call_count: int success_count: int fail_count: int avg_duration_ms: float max_duration_ms: int slow_count: int