"""프로비저닝/오퍼레이션 로그 API 스키마."""

from typing import Optional

from pydantic import BaseModel


class OperationLogResponse(BaseModel):
    id: str
    operation_type: str
    episode_id: Optional[str] = None
    module_name: str
    module_version: str
    prompt_name: Optional[str] = None
    prompt_version: Optional[str] = None
    status: str
    error_message: Optional[str] = None
    duration_ms: Optional[int] = None
    created_at: str

    model_config = {"from_attributes": True}


class OperationDetailResponse(BaseModel):
    id: str
    operation_type: str
    episode_id: Optional[str] = None
    module_name: str
    module_version: str
    prompt_name: Optional[str] = None
    prompt_version: Optional[str] = None
    prompt_hash: Optional[str] = None
    input_summary: Optional[str] = None
    output_summary: Optional[str] = None
    status: str
    error_message: Optional[str] = None
    duration_ms: Optional[int] = None
    token_usage: Optional[str] = None
    metadata_json: Optional[str] = None
    created_at: str

    model_config = {"from_attributes": True}


class OperationSummary(BaseModel):
    operation_type: str
    total: int
    success: int
    error: int
    avg_duration_ms: float
