from pydantic import BaseModel, Field
from typing import Optional


class ServerInfoResponse(BaseModel):
    message: str = Field(..., description="Сообщение о сервере")
    version: str = Field(..., description="Версия API")
    process_id: Optional[int] = Field(None, description="Идентификатор текущего процесса сервера")
    parent_id: Optional[int] = Field(None, description="Идентификатор родительского процесса")
    cpu_cores: Optional[int] = Field(None, description="Количество ядер процессора в системе")
    memory_mb: Optional[float] = Field(None, description="Общий объем оперативной памяти в мегабайтах")
    python_version: Optional[str] = Field(None, description="Версия Python")
    platform: Optional[str] = Field(None, description="Платформа")
    available_parsers: Optional[list] = Field(None, description="Доступные парсеры")

    class Config:
        json_schema_extra = {
            "example": {
                "message": "Svodka Parser API",
                "version": "1.0.0",
                "process_id": 12345,
                "parent_id": 6789,
                "cpu_cores": 8,
                "memory_mb": 16384.5,
                "python_version": "3.11.0",
                "platform": "Windows-10-10.0.22631-SP0",
                "available_parsers": ["svodka_pm", "svodka_ca", "monitoring_fuel"]
            }
        }
